gnuplot中的undefined t变量

时间:2016-02-27 08:07:09

标签: gnuplot

我试图在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错误而停止。我该怎么办?

1 个答案:

答案 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命令不会执行任何操作。