matlab如何循环读取文本文档

想像这样实现,代码是错误的,希望高手帮忙改正,先inputfile读取1.txt后进行数据处理,然后处理完了循环读取2.txt。以此类推 只要这种形式的 不要用load之类的 因为我的这个inputfile还会调用在其他的m文件来判断文件是否打开成功

如果你的txt命名规则,例如1.txt;2.txt这样就好办了,首先需要建立一个txt文件,存放你需要读取的txt文件的范围,可以有三种方式,第一种,要求你的txt是连续的1,2,3,,....N.txt这样的命名,这时候建立的txt里填N+1数值即可;第二种方式,可以指定范围,譬如从1.txt读到4.txt,就填写1 4即可;第三种方式,可以填写文件名序号,乱序都可以,譬如要读取1.txt,3.txt和5.txt,就填写1 3 5即可;剩下的就是运行下面的代码,打开新建的那个txt,就可以自动循环读取txt了,至于读取每个txt具体的工作就需要你自己在循环内进行操作了
[fname,fpath] = uigetfile( ...
{'*.txt','MAT-files (*.mat)'; ...
'*.mdl','Models (*.mdl)'; ...
'*.*', 'All Files (*.*)'}, ...
'Pick a file');
filename=[fpath,fname];
datnum=load(filename);
if(length(datnum)==1) %第一种方式
datnum(2) = datnum(1)-1;
datnum(1) = 1;
dataindex = 1:datnum(2);
elseif(length(datnum)==2) %第二种方式
dataindex = datnum(1):datnum(2);
datnum(1) = 1;
datnum(2) = length(dataindex);
else %第三种方式
dataindex = datnum;
datnum(2) = length(dataindex);
datnum(1) = 1;
end
Result = [];
for i=datnum(1):datnum(2)
% for i=datnum(1):300
filenameDat = fullfile(fpath,[int2str(dataindex(i)),'.txt']); %获取txt文件名

% fid=fopen(filenameDat,'r');
% X= fread(fid,1,'uchar->int');
X = load(filenameDat); %读取txt
Result(i) = X; %具体操作
% fclose(fid);
end
Result
温馨提示:答案为网友推荐,仅供参考
相似回答