读取数据行直到结束

时间:2018-06-30 05:05:41

标签: matlab

我正在尝试读取column2中的数据,直到行结束。我不知道数据的行数,但是它是有限的(<100)。列以空格分隔:

header line 1
header line 2
header line 3
column1    column2
1          2
3          5
5          7
7          9
.          .
.          .
.          .

header line 4
header line 5

我尝试了以下代码。如果没有其他标题行,它将起作用:

mydata = dlmread('data.txt', '', 4, 1)

在如上所述的数据行结束之后,它如何与其他标题行一起使用?

2 个答案:

答案 0 :(得分:2)

一个更简单的解决方案是使用textscan来读取文件。您可以将标题行的数量指定为函数调用的附加参数。当您指定正确的转换说明符时,该函数将忽略文件末尾的其他行。

fileID = fopen('data.txt');
mydata = textscan(fileID,'%d%d','HeaderLines',4);
fclose(fileID);

mydata {2}包含第2列中的数据。

答案 1 :(得分:1)

一种简单的方法是读取字符串格式的文件,删除行,然后写入新文件。

% Read the file
fid = fopen(filePath,'r');
str = textscan(fid,'%s','Delimiter','\n');
fclose(fid);

% Extract number lines
str2 = str{1}(5:end-2);

% Save as a text file
fid2 = fopen('new.txt','w');
fprintf(fid2,'%s\n', str2{:});
fclose(fid2);

mydata = dlmread('new.txt','',0,1);