我试图在网上找到类似的错误,但没有找到任何内容。希望有人可以提供帮助。
我使用类似于此示例的代码与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
首先,然后抱怨第一个@在这行“无效字符@”。
答案 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')