在MATLAB中,如何自动运行多个文件.m(m-file)?
在中,如何自动运行20个文件.m(m-file)?制作另一个m-file,并将您现有的20个m-file的所有名称放入其中 如果希望它们在启动时运行,请将它们放入启动目录中的在MATLAB中,如何自动运行多个文件.m(m-file)?,matlab,Matlab,在中,如何自动运行20个文件.m(m-file)?制作另一个m-file,并将您现有的20个m-file的所有名称放入其中 如果希望它们在启动时运行,请将它们放入启动目录中的startup.m(请参阅doc startup) 如果它们有系统名称,可以将以下内容放入循环中: [y1, y2, ...] = feval(function, x1, ..., xn) 其中,function是在循环中开发的字符串 编辑:如果M文件是脚本而不是函数,则未来版本更安全: eval(s) 其中s是脚本的名
startup.m
(请参阅doc startup
)
如果它们有系统名称,可以将以下内容放入循环中:
[y1, y2, ...] = feval(function, x1, ..., xn)
其中,function
是在循环中开发的字符串
编辑:如果M文件是脚本而不是函数,则未来版本更安全:
eval(s)
其中
s
是脚本的名称。根据您想要的行为,有很多方法。MATLAB是一个非常灵活的环境,适用于这类东西。如果文件位于c:\work\myTwentyFiles中,请创建一个新文件“runMyFiles.m”,其中包含
function runMyFiles()
myDir = 'c:\work\myTwentyFiles';
d = dir([myDir filesep '*.m']);
for jj=1:numel(d)
try
toRun = fullfile(myDir, d(jj).name);
fprintf('Running "%s"', toRun);
run(toRun)
catch E
% Up to you!
end
end
然后使用“-r”选项使MATLAB自动运行此文件:
matlab -r runMyFiles
还有许多其他的变化——MATLAB文件的硬编码位置对初学者来说没有吸引力
刚刚发现了一个更新的问题:另一个选择是使用一个单元格数组来调用
d = {'myfun1','myfun2', 'myfun3'};
然后做一些类似于上面例子的事情——您需要将“toRun”的定义更改为
toRun = fullfile(myDir, d{jj});
你说的“自动”是什么意思?我知道这篇文章很旧,但我有一个类似的问题,为了避免创建另一篇新文章,我在这里问它。我的问题与@Matlabo09几乎相同,但有一点不同,我的一个m文件本身使用了另一个functhion,因此当我运行上述代码时,它会首先转到上述函数,因为matlab无法单独运行函数,它会给我一个错误,我的代码停止运行,并且不会运行其他m文件。那么你能告诉我如何阻止它运行这个函数吗?