如何在gnuplot中将整数转换为字符串?

时间:2011-03-09 06:39:27

标签: gnuplot

我知道如何在{/ p>等示例中将$using一起使用

plot datafile using f($1):g($2)

绘制列数据的功能。但我想在循环中使用此功能:

plot for [c=1:10] datafile using f($(c)):g($(c+1))

当然这段代码不起作用。我想如果我知道如何将整数c转换为字符串(或单个ASCII字符),那么它将起作用。我该怎么办?

(如果可以在不将整数转换为字符串的情况下完成相同的任务,那也没关系。)

5 个答案:

答案 0 :(得分:15)

您可以使用内部函数sprintf将数字转换为字符串

gnuplot>  a=3; b=6;
gnuplot>  plot a*x+b title sprintf("a=%1.2f; b=%1.2f",a,b)

答案 1 :(得分:6)

您正在寻找类似的东西:

plot for [c=1:5] datafile using (column(c)):(column(c+1))

这样做:plot datafile u 1:2, "" u 2:3, "" u 3:4, "" u 4:5, "" u 5:6

答案 2 :(得分:-1)

这样的事情怎么样?循环语句可能会有所不同,具体取决于您使用的shell。下面的一个是使用bash。

plot '< for i in 1 2 3 4 ; do echo $i ; done' us ($1):($1+1)

答案 3 :(得分:-1)

如有必要,请输入一个空字符串。例如:

gnuplot> a=42
gnuplot> print a." questions"
         internal error : STRING operator applied to non-STRING type

gnuplot> print "".a." questions"
42 questions

第一个print由于类型不匹配而失败。第二个虽然很好。显然,.是关联的。

答案 4 :(得分:-2)

set title sprintf("Polinômio de Taylor no ponto %f ",a)

或英文变种

set title sprintf("Taylor Polynomial at the point %f ",a)

将定义标题,将数字a转换为前一个字符串 我已经在一个循环中使用它,之前计算过Taylor Polynomial 在a点,其中包含数字是while的控制变量。