2016-07-18 91 views
0

Linux集羣殼我需要調用在Linux shell中不同的輸入參數的matlab函數,我寫我的循環在下面的表格和它的作品:並行MATLAB仿真

set c=1 

while ($c <= 5) 

#JOB='qsub -m abe -N Big_run - << EOJ matlab -nodisplay -nodesktop << M_PROG test ($c); M_PROG EOJ` 

@ c = $c + 1 

end 

有2個問題,一是是「不匹配」。

另一個是如何將輸入參數傳遞給matlab函數?

+1

它如何「工作」,如果你有這兩個問題......你的意思是你只是循環工作,但不是命令?更重要的是,什麼shell? –

回答

1

對於你的第一個問題,只需使用一個匹配的撇號',而不是墳墓蜱`的:

#JOB='qsub -m abe -N Big_run - << EOJ matlab -nodisplay -nodesktop << M_PROG test ($c); M_PROG EOJ' 

關於第二個問題,像這樣運行它...

matlab -nodisplay -nodesktop -r "yourFunction(42)" 

..其中42是你的輸入參數。

更多的信息在這裏:Unix commandline start: passing arguments to m file。一個很好的例子,從接近尾聲:

matlab -nosplash -nodisplay -nojvm -nodesktop -r "input('A'),input('B'),input('C','s')" 
+0

我正嘗試使用下面這行通過qsub命令調用matlab,但是我得到了「模糊輸入重定向」。錯誤, 換句話說,我怎樣才能通過qsub命令直接運行Matlab? set JOB ='qsub -m abe - << EOJ matlab -nodisplay -nodesktop << M_PROG'test($ c); exit'M_PROG EOJ' – Tom