如何从顶部以外的不同行位置删除标题 - MATLAB

时间:2011-08-30 12:27:54

标签: matlab header

我有一个包含多个标题的文本文件。 它看起来像这样:

Date,time,*10ms,%%,%%,%%,%%,%%,%%,%%,%%,%%,%%,DETAILS.txt;D;%%;10
11/08/19,13:19:28,03,446,0,545.75,0,6,0,0,0,14,0
11/08/19,13:19:29,05,446,0,549.25,1.9,6,102,1,0,0,0
11/08/19,13:19:30,07,446,0,549.5,1.9,6,102,1,0,0,0
11/08/19,13:19:31,09,446,0,548.75,1.9,6,102,1,0,0,0
.
.
.
.
Date,time,*10ms,%%,%%,%%,%%,%%,%%,%%,%%,%%,%%,DETAILS.txt;D;%%;10
11/08/19,13:19:28,03,446,0,545.75,0,6,0,0,0,14,0
11/08/19,13:19:29,05,446,0,549.25,1.9,6,102,1,0,0,0
11/08/19,13:19:30,07,446,0,549.5,1.9,6,102,1,0,0,0
11/08/19,13:19:31,09,446,0,548.75,1.9,6,102,1,0,0,0
.
.

依旧......

我想编写一个删除这些标题行的代码,并将其余数据存储到新文件中。

有人可以帮忙吗?

亲切的问候,

塔玛拉

2 个答案:

答案 0 :(得分:1)

readID = fopen('headers.txt', 'r');
writeID = fopen('no_headers.txt', 'w');
while feof(readID) == 0
    currLine = fgetl(readID);
    if isempty( strfind(currLine, 'Date') )
         fprintf(writeID, '%s\n', currLine);
    end
end
fclose(readID);
fclose(writeID);

答案 1 :(得分:0)

看起来所有标题都相同,我假设你的意思是:日期,时间,* 10毫秒,%%,%%,%%,%%,%%,%%,%%,%%,% %,%%,DETAILS.txt; d; %%; 10

你希望使用MATLAB,如果是这种情况,你必须打开文件,textcan为那一行,然后fgetl删除它。

当行总是相同时,不需要正则表达式或类似的东西。