同僚は、インタラクティブコードを含むMATLAB startup.m
ファイルを持っています(コマンドquestdlg
を呼び出して作業したいプロジェクトディレクトリを尋ねます)。MATLAB startup.mがワーカーで実行されているかどうかを検出します。
これは、MATLABを直接実行しているときにうまく動作します。しかし、彼はまた、matlabpool
を起動して、MATLABコードを並列に実行する必要があります。起動時
、matlabpool
の労働者は(無限に、またはCtrlキーCまで)、彼のstartup.m
ファイルを実行しているquestdlg
になった後、ハングしています。
簡単な解決策は、実際には必須ではないので、彼のstartup.m
から対話型コードを取り除くことです。
しかし、このstartup.m
が起動しているワーカー(isdeployed
または)に似ているかどうかを検出する方法はありますか?その後、彼は役に立つと感じるインタラクティブなコードを保つことができますが、ワーカーを起動しないときにのみ実行します。
コマンドgetCurrentWorker
は、必要なもののように思えましたが、起動時ではなくタスクの実行中にのみ動作すると考えられます。
ありがとう@エドリック。個人的には、それが「正しい」方法であれば、文書化されていないものがあれば問題ありませんが、基本的な作業はここでもうまくいくと書かれています。 'usejava'のような音がうまくいきます - ありがとう! –