2012-03-27 74 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