Matlab读取TXT文件并跳过中间几行的问题!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab读取TXT文件并跳过中间几行的问题!!相关的知识,希望对你有一定的参考价值。

#!MLF!#
"*/group1.rec"
0 11300000 sil -3797.347412 SENT-START
11300000 11600000 dh -156.719879 the
11600000 11900000 ax -208.465164
11900000 11900000 sp -1.203973
11900000 12500000 ih -482.533112 information
.
"*/group2.rec"
0 9800000 sil -3021.529053 SENT-START
9800000 10100000 dh -142.646698 the
10100000 10400000 ax -214.386246
10400000 10400000 sp -1.203973
10400000 10900000 ih -421.761047 information
.
"*/group3.rec"
0 8900000 sil -2576.518555 SENT-START
8900000 9200000 dh -142.900620 the
9200000 9500000 ax -245.424423
9500000 9500000 sp -1.203973
9500000 9900000 ih -343.396576 information

如上边TXT文档内容有三组数据,我不想要这三组数据的两行标题,只想要从0到information中间的矩阵。请问编程才能跳过这两行标题不读,直接读取矩阵?
QQ44380251
每组数据都要计算,就是说读到第一个information后开始计算前边的数据,然后跳过两行在读取第二组数据并计算。计算内容就是矩阵的第二列减第一列

不知道你数据中有数值也有字符如何运算,不过下面的程序能把数字开头的行所有内容读到元胞数组中

clear;
fid=fopen('test.dat','r');
dat=cell(22,10);
recst=logical(0);
linnum=1;
while 1
if(feof(fid));break;end;
str=fgetl(fid);
ind=findstr(str,' ');
if(~isempty(ind))
recst=logical(1);
else
recst=logical(0);
if(linnum~=1)
% one group of data ends here, do your calculation
end
end
if(recst)
ind=[0,ind,length(str)+1];
for ii=1:length(ind)-1
datlinnum,ii=str2num(str(ind(ii)+1:ind(ii+1)-1));
if(isempty(datlinnum,ii));datlinnum,ii=str(ind(ii)+1:ind(ii+1)-1);end
end
linnum=linnum+1;
end
end
fclose(fid);

如果需要,也可以只取其中的数值。原理就是读出每一行中的空格,作为分隔符。
参考技术A 不知道你数据中有数值也有字符如何运算,不过下面的程序能把数字开头的行所有内容读到元胞数组中

clear;
fid=fopen('test.dat','r');
dat=cell(22,10);
recst=logical(0);
linnum=1;
while 1
if(feof(fid));break;end;
str=fgetl(fid);
ind=findstr(str,' ');
if(~isempty(ind))
recst=logical(1);
else
recst=logical(0);
if(linnum~=1)
% one group of data ends here, do your calculation
end
end
if(recst)
ind=[0,ind,length(str)+1];
for ii=1:length(ind)-1
datlinnum,ii=str2num(str(ind(ii)+1:ind(ii+1)-1));
if(isempty(datlinnum,ii));datlinnum,ii=str(ind(ii)+1:ind(ii+1)-1);end
end
linnum=linnum+1;
end
end
fclose(fid);

如果需要,也可以只取其中的数值。原理就是读出每一行中的空格,作为分隔符。

以上是关于Matlab读取TXT文件并跳过中间几行的问题!!的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB 读取数据 怎么跳过空格 和 空行

python脚本 从第二行开始读取 文件读取 跳过第一行 跳过前几行

C:使用fgetc()解析文件 - EOF无限循环

读取 C 源文件并跳过 /**/ 注释

R-从 PurpleAir 传感器读取 csv 文件并跳过某些行末尾包含非标准字符的错误位置

需要一种从文件中获取信息并跳过信息是不是在另一个文件中的方法