5

同僚は、startup.m対話型コードを含む MATLAB ファイルを持っています (コマンドを呼び出して、questdlgどのプロジェクト ディレクトリで作業したいかを尋ねます)。

これは、MATLAB を直接実行している場合にうまく機能します。ただし、matlabpool.

起動時に、 内のワーカーはファイルmatlabpoolを実行し、 に到達してから(無限に、または まで) ハングします。startup.mquestdlgCtrl C

簡単な解決策は、彼の からインタラクティブなコードを削除することstartup.mです。

しかし、これstartup.mが起動中のワーカーによって実行されているかどうかを検出する方法はありますか? or に似たものですisdeployedismcc? そうすれば、便利だと思うインタラクティブなコードを保持できますが、ワーカーを起動していないときにのみ実行できます。

このコマンドgetCurrentWorkerは必要なもののように見えましたが、起動時ではなく、タスクの実行中にのみ機能すると思います。

4

3 に答える 3

2

関数を使用して、対話型デスクトップが実行されているかどうかを確認できます。モードusejavaを頻繁に使用しない限り、これはおそらく十分な近似値です。-nodesktop

if usejava('desktop')
    questdlg(...);
end
于 2013-05-21T06:28:37.157 に答える
0

andを見てください。labindex失敗した場合は、labSendand labReceive.

于 2013-05-20T20:35:16.107 に答える