问题描述
我有类似于下面的代码,其中在每次迭代后绘制一个参数取决于循环迭代的函数。我想用名称 trigplot_i.ps 保存绘图,其中 i 是迭代次数,但不知道如何保存。
我已经尝试过 trigplot_"i".ps 但没有奏效,并且也无法找到如何将 i 转换为字符串。
我是初学者,所以非常欢迎任何帮助。
f(x) := sin(x);
g(x) := cos(x);
for i:1 thru 10 do
(plot2d([i*f(x),i*g(x)],[x,-5,5],[legend,"sin(x)","cos(x)"],[xlabel,"x"],[ylabel,"y"],[ps_file,"./trigplot_i.ps"],[gnuplot_preamble,"set key Box spacing 1.3 top right"])
);
f(x) := sin(x);
g(x) := cos(x);
for i:1 thru 10
do block([myfile],myfile: sconcat("./trigplot_",i,".ps"),printf (true,"iteration ~d,myfile = ~a~%",myfile),plot2d([i*f(x),myfile],"set key Box spacing 1.3 top right"])
);
错误: “声明:参数必须是一个符号;找到了”./trigplot_1.ps - 一个错误。 要调试此尝试:debugmode(true);"
解决方法
看起来不错。要构造文件名,请尝试:sconcat("./trigplot_",i,".ps")
或者您也可以尝试:printf(false,"./trigplot_~d.ps",i)
。我的建议是将其作为循环中的一个单独步骤,然后您可以在对 plot2d
的调用中使用它,例如:
for i:1 thru 10
do block ([myfile],myfile: sconcat("./trigplot_",".ps"),printf (true,"iteration ~d,myfile = ~a~%",myfile),plot2d (<stuff goes here>,[ps_file,myfile],<more stuff>));
编辑:修复了 printf
中的一个错误(省略参数 i
)。