在gnuplot 4.6.3中使用宏

时间:2013-04-29 09:54:10

标签: macros gnuplot

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

我使用类似于此示例的代码与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

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

1 个答案:

答案 0 :(得分: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')