我正在尝试读取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)
在如上所述的数据行结束之后,它如何与其他标题行一起使用?
答案 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);