在以下网站的帮助下,我设法在后台运行了 Matlab:
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