2017-03-09 99 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 .. 。

我已经用电话进行迭代变量我的工作,将提前两句话不会帮助其他呼叫..

所以,我怎么能首先执行MATLAB和运行ImageJ的MATLAB运行完毕后, ?

谢谢!!!!

+0

更新:我试过启动命令,它只能部分工作。我打电话给matlab先运行“loop = %% i %%”,然后运行一个.m文件(stitchFile)。当我在行前添加start/wait时,matlab只运行第一行(loop = %% i %%)并停止.............. –

+0

你在做什么?代码:'“loop = %% i %%;”'。因为变量只是在字母前用2%的符号引用。你之后不要放两个。 – Squashman

+0

我相信这是你的问题。你必须使用[matlab的等待选项](http://stackoverflow.com/a/22307518/1417694)。你不应该使用'START'或'CALL'。 – Squashman

回答

0

问题是你需要使用matlabs wait option。您不使用cmd.exe的CALLSTART /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