对于for
单个plot
命令中的多个,语法记录在的内联帮助中gnuplot
Nested iteration is supported:
set for [i=1:9] for [j=1:9] label i*10+j sprintf("%d",i*10+j) at i,j
例如,
gnuplot> plot for[a=0:1] for[b=0:1] 1+a*x+b*x*x
![图为[a=0:1] 为[b=0:1] 1+a*x+b*x*x](https://i.stack.imgur.com/otD25.png)
你现在可以做你想做的事,除了另一个问题:在gnuplot
数字循环中,变量只有整数值,例如,
gnuplot> plot for [s=3.2:9.3:2.9] x title sprintf("%f", s)
![[s=3.2:9.3:2.9] x 标题 sprintf(](https://i.stack.imgur.com/Pf1kP.png)
所以你的循环w
是不可能的,你必须设计一个不同的策略。
鉴于我不知道您要分配什么值l
(我已经使用过l=1
)并且我不知道步骤w
,这是一个可能的实现,其中技巧是❶定义一个函数您可以根据w
整数变量和 ❷ 定义x
以及根据此辅助变量的值y
gnuplot> set parametric
gnuplot> w(k) = 2*pi*k
gnuplot> x(t, k)=a+(n/w(k))*(cos(w(k)*t)-1)-((g/w(k)**2)*sin(l)-m/w(k))*(sin(w(k)*t)+(g*t/w(k))*sin(l))
gnuplot> y(t, k) = b + ((g/w(k)**2)*sin(l)-m/w(k))*(cos(w(k)*t)-1)+(n/w(k))*sin(w(k)*t)
gnuplot> g = 7 ; l = 1
gnuplot> plot for[a=0:1] for[b=0:1] for[m=0:1] for[n=0:1] for[k=2:3] x(t,k), y(t,k) title sprintf("%d,%d,%d,%d,%d", a,b,n,m,k)
