Matlab,textscan:精确的行选择

时间:2014-06-12 20:17:04

标签: matlab textscan

遗憾的是,Matlab和textscan问题。 在我的情况下,我能够导入我感兴趣的数据,使用:

f = fopen(file,'r');  % Open text file
data=textscan(f, '%f %f %f %f %f %f %f %f', 'Delimiter',',', 'HeaderLines',14);
fclose(f);

但是

在标题的第12行和第13行中,我有一些有趣的数据,结构如下:

Calibration Coefficient,0.002501,0.001,0.1294,35.5,200,66.666,1
Offset,0.9,0,0,0,0.7,0,0

所以它们是第一列中的字符串,然后是7个双字符串,应该以这种方式编码(?)

param1=textscan(f, '%*s %f %f %f %f %f %f %f','Delimiter',',','HeaderLines',11);
param2=textscan(f, '%*s %f %f %f %f %f %f %f','Delimiter',',','HeaderLines',12);

实际上我想知道为什么param单元格是空的,如果可以只导入我文件的第12行和第13行中的数据。

提前致谢。

1 个答案:

答案 0 :(得分:0)

看起来你拥有一切正确的东西。这是一个小修改,应该修复你需要的东西(希望如此)

param1=textscan(f, '%s %f %f %f %f %f %f %f',1,'Delimiter',',','HeaderLines',11);
param2=textscan(f, '%s %f %f %f %f %f %f %f',1,'Delimiter',',','HeaderLines',12);

注意插入' 1'在Delimiter之前。我很确定这只是读了1套'%s%f%f%f%f%f%f%f'在停止之前。这样,您只需读取第12行和第13行,并将它们分别保存到param1和param2。我也没有得到任何空单元格。

希望这有帮助!