引用
浊风 的 matlab多文件和文件夹操作
循环导入文件:
1.文件名是顺序数字
filepath='路径';
%例:filepath='D:\new\';
for i=1:n
A(i)=load([filepath
num2str(i) '.txt']);
end
2.如果文件名里有字符
filepath='路径';
for i=1:n
A(i)=load([filepath
'in' num2str(i) '.txt']);
%'in'只是举个例子,可以替换为需要的字符
end
3.如果文件名是不规律的数字,且已经存在于一个数组内
以'namelist'为数组名为例
filepath='路径';
for i=1:n
A(i)=load([filepath
num2str(list(i)) '.txt']);
%'in'只是举个例子,可以替换为需要的字符
end
**注意:filepath、num2str命令及'.txt'之间必须有空格
如果不加filepath也可以,但是所加载文件须与当前m文件在相同路径中
循环写出文件:
其实循环写出文件和导入是相似的:
1.如果写出文件是顺序数字为文件名
filepath='路径';
%如果不写路径,将会在matlab当前默认的路径上创建文件
for i=1:n
fid=fopen([filepath
num2str(i) '.txt'],'wt');
fprintf(fid,'格式',变量名);
fclose(fid);
end
2.同导入,如果文件名中需要有字符
其他命令不变,
fid=fopen([filepath 'out' num2str(i)
'.txt'],'wt');
3.如果写出文件的文件名在一个数组里,且为纯数字的数组,以outlist为例:
fid=fopen([filepath num2str(outlist(i)
'.txt')],'wt');
4.如果写出文件的文件名有字符,应该存在一个元胞数组内:
outlist={'out456','outw87'......};
其他命令不变
fid=fopen([filepath outlist{i} '.txt'],'wt');
%%也可以在元胞数组内把后缀名也写上,这样就不用在fid中写'.txt'了。
%%例:outlist={'out456.txt','outw564.txt',.....};
fid=fopen([filepath outlist{i}],'wt');
这个会同时生成100个.txt文件
a = 2;
for i = 1:100
s ='XX_t.txt'
;
s
=subs(s,'XX_t',i);
s =char(s);
%字符型
fid = fopen( s,'wt');
fprintf(fid,'%d\n',a);
fclose(fid);
end
另外,要是想同时生成多个文件夹也有如下的方法(这个是我看别人写的)
for i=1:100
s=strcat('mkdir foldername',int2str(i));
system(s);
end
但是 这个用要有两点要注意,一是mkdir和 foldername之间的空格。二是
如果你指定保存盘符路径的话如: s=strcat('mkdir E:\MATLAB
program\自动创建多个文件\XX',int2str(i));
那么是逐级生成文件夹从E开始(如果文件夹没有创立的话)