2012-11-13 32 views
0

如何我會從以下.dat文件導入從第四行的數據:進口特定的列和.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(°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我會開始的行喜歡導入17,433(應該是17.433),然後是17,446等等。我試圖通過指定所述數據線13開始使用textscan和headerlines:

filename = 'Folder\data.dat'); 
fid = fopen(filename); 
data = textscan(fid,'%f\t%f\t%f\t%f\n','Headerlines',13); 
fclose(fid); 

然而,這並不工作(在MATLAB返回一個空數組的意義上)。我想這是由於第二和第三列不是浮點數,但是,當我將它指定爲字符串時,它不起作用。接下來我應該嘗試什麼?

回答

1

首先,請注意,您有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