Sam*_*rts 5 parallel-processing matlab
一位同事有一个MATLAB startup.m文件,其中包含交互式代码(它调用命令questdlg询问他希望在哪个项目目录中工作).
在直接运行MATLAB时,这对他来说很好.但是,他还需要并行运行MATLAB代码,并启动了一个matlabpool.
启动时,工作人员matlabpool正在运行他的startup.m文件,进入questdlg然后挂起(无限地,或直到Ctrl C).
一个简单的解决方案就是摆脱他的交互式代码startup.m,因为它并不是必不可少的.
但有没有办法检测这是否startup.m由一名工人开始运行 - 类似于isdeployed或ismcc?然后他可以保留他认为有用的交互式代码,但只在不启动工作人员时执行它.
该命令getCurrentWorker似乎可能是需要的,但我相信只有在执行任务时才有效,而不是在启动时.
您可以使用该usejava函数来查看交互式桌面是否正在运行,这可能是一个足够好的近似值,除非您经常使用-nodesktop模式。
if usejava('desktop')
questdlg(...);
end
Run Code Online (Sandbox Code Playgroud)