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

发布于 2024-10-20 17:48:36 字数 349 浏览 2 评论 0原文

我知道如何在示例中使用 $using

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

来绘制列数据的函数。但我想循环使用这个功能:

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

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

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

I know how to use $ with using in examples like

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

to plot functions of column data. But I want to use this feature in a loop:

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

Of course this code doesn't work. I guess that if I know how to convert the integer c to a string (or a single ASCII character) then it would work. How can I do it?

(If the same task can be done without conversion of integer to string, that would be fine too.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

橪书 2024-10-27 17:48:36

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

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

You can Use intrinsic function sprintf to convert numbers to string

gnuplot>  a=3; b=6;
gnuplot>  plot a*x+b title sprintf("a=%1.2f; b=%1.2f",a,b)
葬シ愛 2024-10-27 17:48:36

您是否正在寻找类似的内容:

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

Are you looking for something like:

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

This will do: plot datafile u 1:2, "" u 2:3, "" u 3:4, "" u 4:5, "" u 5:6

万水千山粽是情ミ 2024-10-27 17:48:36
set title sprintf("Polinômio de Taylor no ponto %f ",a)

或者英文变体

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

将定义标题,将数字 a 转换为前一个字符串
我在循环中使用了它,并使用之前计算的泰勒多项式
在点 a 处,其中包含数字的 a 是该 while 的控制变量。

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

or the English variant

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

will define the title transforming the number a into the previous string
I have use this in a loop, with the Taylor Polynomial calculated previously
at the point a, where a containing a number is the governing variable of the while.

予囚 2024-10-27 17:48:36

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

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

How about something like this? The loop statement could be different depending on the shell you are using. The one below is using bash.

plot '< for i in 1 2 3 4 ; do echo $i ; done' us ($1):($1+1)
〃温暖了心ぐ 2024-10-27 17:48:36

如有必要,请在前面添加一个空字符串。例如:

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

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

第一次 print 由于类型不匹配而失败。不过第二个效果很好。显然 . 是左关联的。

Prepend an empty string if necessary. E.g.:

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

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

The first print fails because of a type mismatch. The second one works fine though. Apparently . is left associative.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文