我试图在gnuplot中绘制高斯波cos((0.1*x)*exp(-sqrt(x)/2*sqrt(t)))
。我通过以下方式定义t
的范围:
set trange [0.1:2]
plot cos((0.1*x)*exp(-sqrt(x)/2*sqrt(t)))
但它会因undefined variable t
错误而停止。我该怎么办?
答案 0 :(得分:2)
plot命令适用于单个变量的功能。因此,它会填充x
值,但当遇到t
时,它不知道该如何处理。
如果您之前已定义t
,则会使用该值。因此
t = 0.5
plot cos((0.1*x)*exp(-sqrt(x)/2*sqrt(t)))
将正常工作,使用值为0.5的值。
如果您希望为一系列t值绘制多条曲线,可以使用plot for
语法执行类似
plot for [t=0:10] cos((0.1*x)*exp(-sqrt(x)/2*sqrt(0.1+t*0.19)))
将绘制一系列值的曲线。由于for语法适用于整数,我们需要为循环使用整数值,然后计算公式的值(0.1+t*0.19
范围从0.1到2,当t范围从0到10时,根据需要)。您可以使用
plot for [t=0:10] cos((0.1*x)*exp(-sqrt(x)/2*sqrt(0.1+t*0.19))) title sprintf("t=%f",0.1+t*0.19)
设置范围仅适用于plot命令理解的变量。由于t
不是其中之一(参数模式除外),因此在这种情况下,range命令不会执行任何操作。