问题:我写了一段matlab代码,用于计算某个特定参数下面的结果。我想知道该参数对结果的影响。也就是只变动这一个参数,然后运行代码,再变动,再运行。这显然是个重复性的工作。假如使用批处理,能大大节约不必要的工作量。
第一步,将matlab输出结果到一个txt文件中。
方法:在matlab脚本里利用fprintf函数。用法和C语言相似
例子:
想输出 var 和fval这俩参数。
在脚本开头添加
Fid = fopen(‘OutputResult.txt’,‘a’);
a代表追加到文件末尾,没有该文件自动创建。
计算完毕以后添加
fprintf(Fid,’%8.4f %.4f\n’,var,fval);
注意第一个参数是文件ID,如果是1则代表屏幕。.4f代表小数点后保留4位。8代表总共占8个字符间距,如果超出会自动扩展。
最后添加
fclose(Fid);
第二步,利用批处理调用matlab
调用方法:
matlab -nosplash -nodesktop -r main
-r代表 run
main是你脚本的名字,注意不带m
-nosplash代表不显示启动画面,-nodesktop代表不启动matlab GUI窗口
此外还可能有用的选项
-nodisplay -timing -logfile log -wait
其中-wait是matlab运行了以后暂停(也就是不会执行cmd的下一条语句,但是你手动关闭白色窗口以后会执行下一个命令)
如果打开cmd,输入上述命令&