【发布时间】:2023-08-04 00:40:01
【问题描述】:
有没有办法通过批处理文件在不同的 MATLAB 实例中同时运行多个 .m 文件?我要完成的任务如下:
打开 x 个 MATLAB 实例;
让不同的实例同时运行不同的 .m 文件(这样我的 CPU 能力就可以完全利用);
所有实例完成后,退出所有 MATLAB。
单个批处理文件可以完成这个过程吗?我想使用单个批处理文件的原因是我想在我的 MATLAB 脚本中调用这个批处理文件。本质上,我想做并行计算。 (由于我的一些脚本必须在没有并行计算工具箱的 MATLAB 2007 上运行,我必须想办法解决。)
由于我对命令提示符知之甚少,请解释一下代码的语法。
目前,我只知道如何按顺序完成任务,就像下面显示的代码。
cd "C:\My_MATLAB_folder_path"
matlab r- "mfile01;exit"
matlab r- "mfile02;exit"
...
matlab r- "mfilexx;exit"
如果命令提示符无法实现此过程,我可以使用哪些替代方法?重要的一点是,无论使用什么方法,都必须能够在 MATLAB 脚本中调用。
【问题讨论】:
-
当 CMD 从批处理文件执行命令或程序时,它会等待启动的程序退出,然后执行下一个命令。为了克服这个问题,您可以在每次调用 MATLAB 之前加上
start命令:start "" matlab r- "mfilexx;exit"。这只是从批处理脚本的角度来看,但我既不推荐也不拒绝同时调用太多 MATLAB 实例的想法。但必须有一个你应该考虑的限制。在 MATLAB 调用之间稍微延迟可能是个好主意timeout <SecondsToWait>。 -
@sst 您可以使用并行计算工具箱在 MATLAB 中本地实现此目的。这样做时,工作实例的默认数量等于机器上的核心数量,这可能有助于指导使用此方法的实例数量。
-
@Wolfie,是的,我也是这么想的。这说得通。感谢您的信息。
-
@sst 谢谢,那行得通。另一个请求:您能否将您的评论放在答案中,以便我可以选择您的作为最佳答案然后关闭问题?
标签: matlab batch-file