2017-03-09 7 views
0

私はmatlabとImageJをforループでバッチファイルで動かそうとしています。matlabとImageJを連続して呼び出します

コードは、私は、変数を指定し、この

set iterationTimes=4 

for /l %%i in (0,1,%iterationTimes%) do (

call matlab -nodesktop -nosplash -r "loop=%%i%%;"%stitchFile% 

call %IJPath% -macro %JythonPath% %%arg%% 

) 

のようなもので、問題がImageJのあるMATLABコードの出力を使用する必要があり、まだバッチは、同じ時間でのImageJとMATLABを実行しているようです。.. 。

私はすでに先に2文の別の呼び出しを追加すると、どのように私は最初のMathWorks社のMATLABを実行し、MATLABが起動して終了した後にImageJを実行することができます..だから

を助けないだろう、私は仕事反復変数を作成するための呼び出しを使用します?

ありがとうございます!

+0

update:私は開始コマンドを試しましたが、部分的にしか動作しません。私は "loop = %% i %%"を実行してから、.mファイル(stitchFile)を実行するようにMATLABを呼び出します。私が行の前にスタート/ウェイトを追加すると、matlabは最初の行(ループ= %% i %%)のみを実行し、停止します.............. –

+0

これで何をしていますか?コード: '"ループ= %% i %%; "'変数は、文字の前に2パーセントの記号で参照されます。あなたは2つ後に置くことはありません。 – Squashman

+0

私はこれがあなたの問題だと信じています。 [matlabの待機オプション](http://stackoverflow.com/a/22307518/1417694)を使用する必要があります。 'START'や' CALL'を使う必要はありません。 – Squashman

答えて

0

問題はmatlabs wait optionを使用する必要があります。 cmd.exeのCALLまたはSTART /WAITコマンドは使用しないでください。

set iterationTimes=4 

for /l %%i in (0,1,%iterationTimes%) do (

matlab -wait -nodesktop -nosplash -r "loop=%%i;"%stitchFile% 

call %IJPath% -macro %JythonPath% %%arg%% 

) 
+0

ありがとうございます。私は文字通りバッチでの経験はありません...これを行うために最初にbashコードを書いたのですが、それはOS XとUbuntuの両方でうまくいきます...したがって、私はこれを考えなかった........... –

+0

@HongliWang、それは本当にバッチファイルの問題ではありませんでした。あなたはそれを使用しているオペレーティングシステムに対して正しくmatlabを正しく使用していませんでした。 – Squashman

関連する問題