一位同事有一个startup.m
包含交互式代码的 MATLAB 文件(它调用命令questdlg
询问他希望在哪个项目目录中工作)。
直接运行 MATLAB 时,这对他来说很好。但是,他还需要并行运行 MATLAB 代码,并且已经启动了matlabpool
.
启动时,其中的工作人员matlabpool
正在运行他的startup.m
文件,到达questdlg
然后挂起(无限或直到Ctrl C)。
一个简单的解决方案是从他的 中删除交互式代码startup.m
,因为它并不是真正必要的。
但是有没有办法检测这是否startup.m
是由启动的工人运行的——类似于isdeployed
or的东西ismcc
?然后他可以保留他认为有用的交互式代码,但只在不启动工作程序时执行它。
该命令getCurrentWorker
似乎可能是需要的,但我相信它仅在任务执行期间有效,而不是在启动时有效。