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)