如何在gnuplot中调用字符串中的整数
我只是想回忆一下字符串中的一个整数,如下所示如何在gnuplot中调用字符串中的整数,gnuplot,Gnuplot,我只是想回忆一下字符串中的一个整数,如下所示 x=1 y=4 $Data <<EOD 12 x 22 y EOD print $Data 然而,当我打印$Data时,我很想看到输出,比如 12 1 22 4 我在整数x和y后面使用了$符号,但它不起作用,使用引号也是如此。 有什么办法可以绕过它吗?如果不知道你的总体目标,很难说最好的答案是什么。如果在使用$Data之间不更改x和y的值,则一种解决方案是在写入$Data时扩展x和y,而不是在读取$Data时: set print $
x=1
y=4
$Data <<EOD
12 x
22 y
EOD
print $Data
然而,当我打印$Data时,我很想看到输出,比如
12 1
22 4
我在整数x和y后面使用了$符号,但它不起作用,使用引号也是如此。
有什么办法可以绕过它吗?如果不知道你的总体目标,很难说最好的答案是什么。如果在使用$Data之间不更改x和y的值,则一种解决方案是在写入$Data时扩展x和y,而不是在读取$Data时:
set print $Data
print sprintf("%d 12", x)
print sprintf("%d 22", y)
unset print
plot $Data using 1:2 with linespoints
如果确实需要从$Data的每一行提取字符串“foo”,并检索具有该名称的变量的当前值:
$Data << EOD
x 12
y 22
EOD
x = 3; y = 5
do for [ i=1: |$Data| ] {
print value(word($Data[i],1)), " ", word($Data[i],2)
}
3 12
5 22
非常感谢您的帮助和剪断的代码。目标是检索当前值并将其存储在$Data中,以便我可以使用它们来绘制一些数据。我将修改它以显示plot命令。嗨,Ethan,我不知道何时使用该命令进行绘图,第一个x值始终为0。它正在3 12上绘制0 12。你检查过输出了吗?如果你画出第二个剪下的罐子,你就能看到我在说什么了!是的,在5.2版中引入了将数据块视为字符串的可索引数组
$Data << EOD
x 12
y 22
EOD
x = 3; y = 5
do for [ i=1: |$Data| ] {
print value(word($Data[i],1)), " ", word($Data[i],2)
}
3 12
5 22
set dummy not_really_x
plot $Data using (value(strcol(1))) : (column(2)) with linespoints