微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在gnuplot中调用字符串中的整数

如何解决如何在gnuplot中调用字符串中的整数

我只是想在字符串中调用一个整数,如下所示;

x=1
y=4
$Data <<EOD
12 x
22 y
EOD
print $Data

现在,当我输出上述行时,它将打印

12 x
22 y

但是,我很感兴趣在打印$ Data like时看到输出

12 1
22 4

我在整数x和y后面使用了$符号,但是它不起作用,使用引号也是如此。 反正有解决办法吗?

解决方法

在不知道总体目标的情况下,很难说出最佳答案是什么。如果您不会在两次使用$ Data之间更改x和y的值,那么一种解决方案是在写入$ Data而不是在读取它时扩展x和y:

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

请注意,您必须在print语句的中间添加一个显式空格。

要在绘图命令中执行此操作:

编辑:显然,如果读入的变量名称专门为“ x”,则程序会感到困惑,因为这也是水平轴上因变量的默认名称。您可以通过临时重命名因变量的默认名称(程序将其称为“虚拟”名称)来消除这种歧义。

set dummy not_really_x
plot $Data using (value(strcol(1))) : (column(2)) with linespoints

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。