求教matlaB读取txt指定行的方法!文件头几行和末几行是无用信息,中段行才是我想读取的数据,

索性把整个问题请教一下各位吧,我有一大堆txt文件数据需要读取,而每个文件的开头几行和结尾几行是不需要的一些文字信息,总行数是已知的,中间行的数据就作为矩阵读入,求问如何一次性把这么多文件读入呢?打个比方,我现在有10000个文件名为"shuju_1"、"shuju_2"、"shuju_3"这种文件名规律的txt文件,然后我想批量的读取这10000个文件里第5行到第600行的数据,拜谢各位!

第1个回答  2012-11-24
使用textread函数进行读取,通过
'endofline' - end of line character (default determined from file)
'expchars' - exponent characters (default is 'eEdD')
这两个参数控制读取的行数。

大量的文件通过dir函数来读取文件名,也可以通过循环构造文件名!追问

请问'endofline' 、 'expchars‘怎么用?我之前看textread的help文件时就看到过这两个,开头几行倒可以通过headerlines跳过,怎么把末几行忽略就搞不定了

追答

我刚看了一下,这个函数是没办法处理末行的。
你最好使用fread函数来处理这个东西!

本回答被网友采纳
第2个回答  2012-11-24
我的方法不一定最好,但是很容易操作
setp 1: 在计算机的cmd.exe
D:\matlab>dir *.txt >>a.log 把你的文件写到a.log

让后把a.log的内容 copy到 Excel内
C列的公式
:="Z{"&B3&"}=fopen('"&A3&"');"
Alie B列 C列
文件名 序号 读取文件
shuju_1.txt 1 Z{1}=importdata('shuju_1.txt');
shuju_2.txt 2 Z{2}=importdata('shuju_2.txt');
shuju_3.txt 3 Z{3}=importdata('shuju_3.txt');
shuju_4.txt 4 Z{4}=importdata('shuju_4.txt');
shuju_5.txt 5 Z{5}=importdata('shuju_5.txt');
shuju_6.txt 6 Z{6}=importdata('shuju_6.txt');
shuju_7.txt 7 Z{7}=importdata('shuju_7.txt');

让后copy C列到 matlab中执行就行了
所以数据到保存到Z中
在怎么操作都简单了;
譬如输出
for i=1:n
Z{i}
end;
---------------------------------
>> for i=1:2
Z{i}
end
ans =
1 2
ans =
2 3 5
>>本回答被提问者采纳
相似回答