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