0

我试图找到网上描述的类似错误,但没有找到任何东西。希望有人可以提供帮助。

我在 gnuplot 4.4p3 中使用类似于此示例的代码:

set macros
col_TIME = '1'
col_meas = '2'
range = 'using ($@col_TIME/3600):@col_meas'
plot "file.txt" @range

但是对于 gnuplot 4.6p3,它在执行最后一行时会引发错误。它正确地替换为

plot "file.txt" using ($@col_TIME/3600):@col_meas

首先,然后用“无效字符@”抱怨这一行中的第一个@。

4

1 回答 1

1

这与您的解决方法基本相同,但我可能会使用sprintf

range = sprintf('using ($%d/3600):%d',col_TIME,col_meas)

较新版本的 gnuplot 也支持eval可能有用的命令。以下是内置帮助中提供的示例:

set_label(x, y, text) \
     = sprintf("set label '%s' at %f, %f point pt 5", text, x, y)
eval set_label(1., 1., 'one/one')
eval set_label(2., 1., 'two/one')
eval set_label(1., 2., 'one/two')
于 2013-04-29T13:52:25.200 回答