Matlab 从.dat文件导入特定列和行范围
如何从以下.dat文件导入第四行的数据:Matlab 从.dat文件导入特定列和行范围,matlab,textscan,Matlab,Textscan,如何从以下.dat文件导入第四行的数据: #0 Date-time: 07/06/2011 09:13:53 #1 Recorder: 10T2607 #2 File type: 1 #3 Columns: 3 #4 Channels: 1 #5 Field separation: 0 #6 Decimal point: 0 #7 Date def.: 0 0 #8 Time def.: 0 #9 Channel 1: Temperature
#0 Date-time: 07/06/2011 09:13:53
#1 Recorder: 10T2607
#2 File type: 1
#3 Columns: 3
#4 Channels: 1
#5 Field separation: 0
#6 Decimal point: 0
#7 Date def.: 0 0
#8 Time def.: 0
#9 Channel 1: Temperature(°C) Temp(°C) 3 1
#11 Reconvertion: 0
#19 Line color: 1 2 3 4
#30 Trend Type Number: 1
#33 Limit Temp. Corr. OTCR: 0
1 07.04.11 08:00:00 17,433
2 07.04.11 08:05:00 17,446
3 07.04.11 08:10:00 17,458
4 07.04.11 08:15:00 17,458
因此,按照以#33开头的行,我想输入17433(应该是17.433),然后是17446,依此类推。我已尝试使用textscan和headerlines,指定数据从第13行开始:
filename = 'Folder\data.dat');
fid = fopen(filename);
data = textscan(fid,'%f\t%f\t%f\t%f\n','Headerlines',13);
fclose(fid);
但是,这不起作用(在MATLAB返回空数组的意义上)。我想这是因为第二列和第三列不是浮点数,但是,当我将其指定为字符串时,它也不起作用。下一步我应该试试什么 首先,请注意您有14条标题线 对于数据导入,您可以尝试以下操作:
filename = 'Folder\data.dat';
fid = fopen(filename);
data = textscan(fid,'%f\t%s\t%s\t%s','Headerlines',14);
a = cellfun(@(x) str2num(strrep(x, ',', '.')), data{4});
fclose(fid);
这导致
a =
17.4330
17.4460
17.4580
17.4580