2008-08-18 19 views
20

m-fileを実行するように-rフラグを使用することができるMATLABヘルプ(matlab -h)を参照してください。私がこれを行うと、MATLABはスクリプトを開始するように見えますが、すぐに戻ります。スクリプトは正常に処理されますが、メインアプリは既に返されています。コマンドラインスクリプトが完了するまでMATLABの復帰を停止するにはどうすればよいですか?

コマンドが終了してからMATLABに戻る方法はありますか?別のプログラムから呼び出す場合は、ファイルやソケットを使用して完了を確認するよりも、プロセスを待つ方が簡単なようです。

説明するために、ここではサンプル関数waitHello.mです:

function waitHello 
    disp('Waiting...'); 
    pause(3); %pauses 3 seconds 
    disp('Hello World'); 
    quit; 

そして、私は使用してこれを実行しよう:

matlab -nosplash -nodesktop -r waitHello 

答えて

24

クイック答え:Matlabの7.1で

matlab -wait -nosplash -nodesktop -r waitHello 

(私が持っているバージョン)には、文書化されていないコマンドラインオプション-waitがmatlab.batにあります。あなたのバージョンでうまくいかない場合は、おそらくそれを追加することができます。ここに私が見つけたものがあります。最終的には、MATLABを起動下部のコマンドは、(ライン153)である:

start "MATLAB" %START_WAIT% "%MATLAB_BIN_DIR%\%MATLAB_ARCH%\matlab" %MATLAB_ARGS% 

この場合、startコマンドの構文は、関連する(cmd.exeの中に、「ヘルプの開始」を参照)である。

start ["window title"] [/wait] myprogram.exe args ... 

少し高いが、文書化され、コマンドラインオプションのすべての中で、私は(ライン60)が見つかりました:

) else if (%opt%) == (-wait) (
    set START_WAIT=/wait 
) else (

だから-waitは、限り、あなたはまた、あなたからMATLABを終了しているとして、あなたが欲しいものを行う必要があります指定しますスクリプト(そうでなければ、対話的に終了することができます)。

+2

このオプションはlinuxにはありませんが、どのように私は同じ達成することができますか? ( '[wait'](https://en.wikipedia)を使用して)' -wait'フラグのUnixに相当するものについては、 – Snickers3192

+0

@ Snickers3192 [私の答えはこちら](https://stackoverflow.com/a/4621554/97160) .org/wiki/Wait_(コマンド))シェルコマンド) – Amro

関連する問題