我要加入 登录
声振论坛 返回首页

zhuofeng的个人空间 http://home.vibunion.com/?824 [收藏] [复制] [分享] [RSS]

日志

matlab多文件和文件夹操作

已有 2020 次阅读2009-4-2 12:15 |个人分类: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开始(如果文件夹没有创立的话)

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 我要加入

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-7 12:49 , Processed in 0.054778 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部