Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中,如何自动运行多个文件.m(m-file)?_Matlab - Fatal编程技术网

在MATLAB中,如何自动运行多个文件.m(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是脚本的名

在中,如何自动运行20个文件.m(m-file)?

制作另一个m-file,并将您现有的20个m-file的所有名称放入其中

如果希望它们在启动时运行,请将它们放入启动目录中的
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文件。那么你能告诉我如何阻止它运行这个函数吗?