我設法與下面的網站的幫助下在後臺運行Matlab的:運行循環利用Matlab的背景BASH#命令3
http://www.stat.osu.edu/computer-support/programming/background-jobs
我進行循環:
for ((i = 1; i <= 5; i++)); do
echo $i>i.txt;
matlab -nodesktop -nodisplay <script.m &> dummy.out &
done
在腳本中有一部分:
fid=fopen('a:\folder\i.txt');'];
iter=str2double(fgets(fid))
myfunction(iter,a,b,c)
myfunction.m的函數行爲
myfunction(num,a,b,c)
此函數保存與也是根據「NUM」
含義的值更改的名稱的文件時,輸出將是:myfile1.mat爲第一命令,myfile2爲第二命令等
當我運行命令,而無需環路
echo 1>i.txt;
matlab -nodesktop -nodisplay <script.m &> dummy.out &
echo 2>i.txt;
matlab -nodesktop -nodisplay <script.m &> dummy.out &
etc...
不存在任何問題,輸出是不錯
當我跑步時的循環我得到的唯一文件是myfile5.mat
我已經改變了代碼,以便投入將是myfunction的(I1,A,B,C),myfunction的( i2,a,b,c)...但結果保持不變。
我認爲,因爲所有函數的'num'是5(循環的完成速度比計算快得多),所以在函數的末尾(運行很長一段時間)存在問題。
有什麼想法? tnx
嘗試在循環內調用matlab後放置一個'sleep 1',我認爲你的診斷是正確的。祝你好運。 – shellter
@shellter,tnx,我在matlab調用之前和之後嘗試了10次睡眠,它不夠好,它不是一個好的解決方案,因爲函數的工作持續時間因呼叫而異,還有其他含義? – jarhead