如何在批处理文件中分步运行for循环 实现MATLAB顺序调用
默认情况下,批处理执行matlab命令时不会等待进程运行结束,就会直接执行下一行指令,所以for循环会连续启动多个MATLAB实例,和预期的串行执行逻辑不符。
方案1:使用MATLAB自带的-wait参数(最简便)
Windows版MATLAB提供了-wait参数,调用时添加该参数即可让批处理等待MATLAB运行结束退出后,再执行下一轮循环。
修改后的代码如下:
@echo off for /l %%x in (1, 1, 2) do matlab -wait -r "cd('H:\EngFiles\Ali\Backups codes\New set with multiple scenarios_Parallel');Bi_Objective_algorithm; exit" pause
方案2:使用批处理start /wait命令(兼容性更好)
如果使用的MATLAB版本不支持-wait参数,可以用批处理自带的start /wait命令实现等待逻辑:
@echo off for /l %%x in (1, 1, 2) do start /wait matlab -r "cd('H:\EngFiles\Ali\Backups codes\New set with multiple scenarios_Parallel');Bi_Objective_algorithm; exit" pause
可选优化
如果不需要显示MATLAB桌面UI,可以额外添加-nosplash、-nodesktop参数,降低资源占用,提升运行速度,调用示例:
matlab -wait -nodesktop -nosplash -r "cd('H:\EngFiles\Ali\Backups codes\New set with multiple scenarios_Parallel');Bi_Objective_algorithm; exit"
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

