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