在MATLAB中,如何自动运行多个文件.m(M文件)?

时间:2010-02-22 08:34:11

标签: matlab

MATLAB中,如何自动运行20个文件.m(M文件)?

2 个答案:

答案 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});