matlab 数组文件名,MATLAB里用数组变量作文件名打开多个文件及给多个文件命名的方法...

使用dir命令+循环

a=dir直接得到对应的结构体

http://www.doczj.com/doc/b15b39e6aeaad1f346933f95.html得到相应的文件名

我需要利用MATLAB同时对40个数据文件进行数据处理,各个数据文件格式相似,处理方法相同。也就是说,用于处理这些数据文件的MATLAB程序是基本一样的,只有读入的文件名不同,其它地方都一样。

一开始我编了一个命令,用于处理这些数据,读入文件的文件名设为a.txt,将第一个数据文件改名为a.txt后进行运算,完毕后再将第二个文件改名为a.txt,重复这个过程40次。

后来我将这个程序复制、粘贴40次,成为一个大程序,第一次粘贴后将读入文件的文件名改为a1.txt,下一个改为a2.txt,以后依此类推,直到a40.txt,然后将40个数据文件的名字如法照该。最后运行MATLAB程序,一次就把40个数据文件都处理了。

再后来我觉得程序里的输入文件的文件名离得太远,改一次很不方便,要翻遍整个程序。而且,一模一样的程序应该用循环来实现,看起来容易看懂,用起来运算速度也快。

最后的办法是把所有文件名放在了一个矩阵里头,用了一个for循环,每循环一次调用一个字符串作文件名。下面以四个文件为例:

a=['a1.txt'

'a2.txt'

'a3.txt'

'a4.txt']; %如果是a10.txt,则前面的都要在最后加空格,因为矩阵要保证每一列的宽度一致

x=1; %给x赋初值为1

for i=1:4 %四个数据文件,所以进行四次循环

fid=fopen(a(x,1:6),'r') %将矩阵a的第一行(即字符串a1.txt)作为输入文件的文件名。因为每一个字符都被

认为是一列,所以读取1至6列才是完整的名称,a(x,1)读出来的值只是一个字母a

x=x+1; %将x的值自动加一,下次循环的时候就会读取第二列的值,即打开文件a2.txt

……

……

…… %进行数据的处理

end

利用上面的办法,程序很简洁,效果很好。如果换了下一批数据文件,只需要改动矩阵a的内容即可。

给多个文件命名的原理与此相同,不再赘述。

另一种方法更简便,介绍如下:

a=zeros(4,1)

for i=1:4

a(i,1)=load(strcat('a',num2str(i),'.txt'));

end

a=zeros(4,1)

for i=1:4

s=strcat('a',num2str(i),'.txt');

a(i,1)=load(s);

end

a=zeros(4,1)

for i=1:4

s=strcat('a',num2str(i),'.txt');

a(i,1)=importdata(s);

end

注:我是在每个记事本文件里放了一个数。放东西多的时候不能这样赋值给a,但是可以这样读取数据。

num2str()命令是将数值变为字符串;

strcat()是将多个字符串合并,字符串中间要用逗号(,)隔开;

load()命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值