我正在尝试编写一个批处理脚本,它可以通过以下方式调用和运行MATLAB脚本:
matlab -r plotFunction(a,b); quit %here, a=1:10 and b=1:10
matlab -r plotFunction(a,b); quit %in 2nd instance a=11:20, b=11:20
matlab -r plotFunction(a,b); quit %in 3rd instance a=21:30, b=21:30
and so on.
也就是说,每次打开一个新的MATLAB实例时,都会调用函数plotFunction,它会执行100次绘图,然后退出程序(MATLAB)。在此之后,程序的另一个实例打开,再次执行100次绘图(对应于a = 11:20和b = 11:20)并再次退出。等等。如何把它放在一个循环中?
答案 0 :(得分:1)
batch_job工具箱会为您完成此操作。
答案 1 :(得分:0)
您可以将Windows命令提示符中定义的变量传递给MATLAB:
set AMIN='1'
set BMIN='1'
set AMAX='10'
set BMAX='10'
matlab -r "disp(str2double(%AMIN%):str2double(%AMAX%)),disp(str2double(%BMIN%):str2double(%BMAX%)); input('press a key to quit'); quit"
编辑:
这可以像这样改进,
set AMIN=1
set BMIN=1
set AMAX=10
set BMAX=10
set MATPROG=^
arange=(%AMIN%:%AMAX%),^
brange=(%BMIN%:%BMAX%),^
[x,y]=meshgrid(arange,brange),^
aplusb=x+y,^
plot3(x,y,aplusb),^
input('press a key to quit'),^
quit
matlab -r "%MATPROG%"
请注意,^是批处理文件行继续符。
此更改将更容易转换为批处理文件中的循环,但我不明白为什么您不在MATLAB函数中创建循环并调用它来保持批处理文件为尽可能简单。