如何让脚本运行几个文件?

时间:2017-09-06 11:47:11

标签: matlab

这是我的代码

function1( 'myfile.20140826')
plot( 'myfile.20140826.shd.mat', 1, 1, 1 )
saveas(gcf(), 'myfile.20140826.20140826.pdf') 

function1( 'myfile2.20140826' )
plot( 'myfile2.20140826.shd.mat', 1, 1, 1 )
saveas(gcf(), 'myfile2.20140826.pdf') 

我有几个文件,我希望它运行并自动绘图。此文件名称几乎相同,但名称中的日期更改(myfile.20140826, myfile.20160827等)。任何想法?也许做一个for循环或什么?

2 个答案:

答案 0 :(得分:2)

将要阅读的文件保存在目录中并运行:

Files=dir(fullfile(pwd,'\*.shd.mat'));
for j=1:length(Files)
 str=strsplit(Files(j).name,'.');
 res=sprintf('%s.%s',str{1},str{2});
 function1(res);
 plot(Files(j).name, 1, 1, 1 );
 saveas(gcf(), strcat(res,'.pdf'));
end

命令dir(fullfile(pwd,'\*.shd.mat'))将读取当前文件夹中的所有文件。

答案 1 :(得分:1)

详细说明Adiel的评论:

Files=dir('myfile*') %takes wildcards

for ii=1:length(Files)

   function1( Files(ii).name)
   % ...

end