在MATLAB中,如何自动运行20个文件.m(M文件)?
答案 0 :(得分:6)
制作另一个M文件,并将20个现有M文件的所有名称放在其中。
如果您希望它们在启动时运行,请将它们放在startup.m
的启动目录中(参见doc startup
)。
如果他们有系统名称,你可以把以下内容放在一个循环中:
[y1, y2, ...] = feval(function, x1, ..., xn)
其中function
是您在循环中开发的字符串。
编辑:如果M文件是脚本而不是函数,则使用它将更安全:
eval(s)
其中s
是脚本的名称。
答案 1 :(得分:4)
有很多方法,取决于你想要的行为。 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});