2011-11-18 35 views
0

我想要一個能夠讀取文本文件並將每組數據存儲到單獨數組的m文件。一組數據是特定字符串之間出現的一系列十六進制值。在文本文件中出現特定字符串後,將數據存儲到單獨的陣列

文本文件的格式類似於以下內容:

This is the set for x = 100 
--------------------------- 

For y=COLUMN 1 we have 
1232 
3ff3 
4a45 
23d4 
5323 
... 
... 
END of COLUMN 1 meas 

For y=COLUMN 2 we have 
1232 
3c43 
4545 
2d24 
5a23 
... 
... 
END of COLUMN 2 meas 

This is the set for x = 200 
--------------------------- 

For y=COLUMN 1 we have 
2b23 
1232 
d387 
6f74 
4c47 
... 
... 
END of COLUMN 1 meas 

For y=COLUMN 2 we have 
354d 
a546 
3c63 
5a46 
a349 
... 
... 
END of COLUMN 2 meas 

This is the set for x = 530 
--------------------------- 
.......... 
.......... 

正如你所看到的,對於X的每一個新的價值,我得到一個單獨的數據集爲「Y = 1列」和爲「y = COLUMN 2」。 我想要的是將這些數據集(兩個'y')存儲到單獨的(1,2)數組中,每個X值一個。理想情況下,這會看起來像:

Array_for_x_100(1,1)=[data for "y=COLUMN 1"] 
Array_for_x_100(1,2)=[data for "y=COLUMN 2"] 

Array_for_x_200(1,1)=[data for "y=COLUMN 1"] 
Array_for_x_200(1,2)=[data for "y=COLUMN 2"] 

.......... 
.......... 

我的想法是這樣做,使用textscan,但我有點困惑,如何使用它。 我不知何故必須存儲出現在特定字符串之間的值的範圍(例如,存儲值在「這是x = 100的集合」字符串之後3行,直到「COLUMN 1 meas的字符結尾」字符串等)出現 。

如果有人可以幫忙,我會很感激。

回答

0

嘗試調整在你身邊TextScan

的參數
fid = fopen([opath filename]); 
K = textscan(fid,'%f %f %f %f ',...  
    'CommentStyle','For',... 
    'CommentStyle','This',... 
    'CommentStyle','End',... 
    'Delimiter',',\t',... 
    'MultipleDelimsAsOne',1); 
fclose(fid); 

K = cell2mat(K); 

你可以調整它,找到更多的參數來控制你的輸入等,但它應該工作,具有一定的汗水

相關問題