Matlab如何循环读取文件

Matlab如何循环读取文件,第1张

clear allclose allclc

for i=1:100

syms(['A',num2str(i)]) %定义变量

syms(['b',num2str(i)]) %定义变量

eval(['A',num2str(i),'=importdata(''',num2str(i),'A.txt'')'])%读取数据文件

eval(['b',num2str(i),'=importdata(''',num2str(i),'b.txt'')'])%读取数据文件

end

我的文件名是 test 1-1.txt,test 1-2.txt ,。。。。,test 1-10.txt然后设计了一个循环测试了下 clcclearfor i=1:10 temp=['test 1-',num2str(i),'.txt']

data(i)={textread(temp)} %这里利用的是元胞数组,当然你也可直接写data=...然后进行运算end 如果是你提供的那种形式文件名,也不难依样画葫芦clcclearfor i=1:3 for j=1:3

temp=[num2str(i),'-',num2str(j),'.txt']

data(i,j)={textread(temp)}

end

如果你的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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11908086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存