2012-03-27 37 views
0

文件我有一個看起來像這樣的文件:閱讀頁眉和評論textscan

(floor 12) 
(   x   y   z   u   v   w  diameter   t mass-flow   mass frequency   time   name) 
((4.0331e-01 0.0000e+00 1.3201e+00 -3.1926e-03 -2.9862e-02 2.5690e-02 2.5000e-06 3.0000e+02 0.0000e+00 8.1665e-15 0.0000e+00 5.8257e+02) injection-0:8) 

我只是想x和y z值。我使用textscan失敗,但我願意聽取建議:

[x y z] = textscan (fid, '%n %n %f %f %f %*[^\n]', 'HeaderLines', 2); 

我不知道如何對待((。有什麼選擇?

問候,

回答

2

那麼,如果它總是((那麼下面應該工作,它會把你的3個值放入一個單元格,因此myCell {1}分配值,如果你需要它們在一個單獨的變量。

myCell = textscan (fid, '((%f %f %f %*[^\n]', 'HeaderLines', 2); 
x=myCell{1}; 
y=myCell{2}; 
z=myCell{3}; 
+0

作品一種享受!謝謝!現在我不再需要刪除所有文件了!所以現在x,y和z是單元格。我仍然無法理解爲什麼某些功能需要細胞和其他載體。有一種通用的方法來知道哪些需要哪些?問候, – HCAI 2012-03-27 11:25:28

+0

我不知道任何一般的方法 - 你只需要閱讀文檔,例如從文本掃描它說:「說明符的數量決定單元格數組C中的單元格的數量。」 – Adrian 2012-03-27 15:15:56

0

你可以只調用fgets()兩次打電話textscan()之前跳過頭。

+0

你會如何定義你的命令fgets(fid)?返回-1 ... – HCAI 2012-03-27 08:46:13