2014-11-21 42 views
0

我有一個如下的數據文件(.txt)用不同長度的行讀取文本文件

A 2.2 5 
B 3.2 0.5 
C 0 2 
A 3 2 B 
A 2 6 C 
B 2.3 4.5 C 

前三個是表示節點(名,特徵1,特徵),而最後三個都表示每個節點(節點A,節點B,節點C)之間的關係。正如你所看到的,節點和關係是不同的格式(節點=字符串數字數字,而關係=字符串,數字數字字符串)。最後,我會根據他們的初始特徵和時間關係來繪製他們。我嘗試了幾件事情,但節點具有3個參數和邊緣有4個參數的事情使得難以解決。

所以,基本上,我想逐行閱讀文本文件,我希望能夠定義所有節點,並將節點的所有參數作爲字符串數字數字,並定義所有關係以及最後繪製它們。

任何幫助表示讚賞。

回答

1

查看內置函數fgetl

fid = fopen(filename); 

lineoftext = fgetl(fid); 
while ischar(lineoftext) 
    C = strsplit(strtrim(lineoftext)); % this will be a cell array 
    if length(C) == 3 
     % then it's a node, put code here 
    else 
     % then it's relational, put code here 
    end 
    lineoftext = fgetl(fid); 
end 

fclose(fid); 

這將從文件中讀取一行,它分割成在單元陣列文本塊,然後計數塊的數目,看它是否是一個節點或關係字符串。您必須將自己的代碼放入if語句中。然後它讀入另一行,並重新完成。當它到達文件末尾時,lineoftext = -1和while循環結束。

相關問題