我使用的是windows版本的gnuplot
Version 4.6 patchlevel 3 last modified April 2013
我通过“加载...”
运行gnuplot脚本时遇到问题如果我从gnuplot命令行执行以下操作
set macro
test1 = "@test2"
test2 = "sin(x)"
pl @test1
它确实按预期工作。但是如果我将代码放入脚本并从命令行执行它
gnuplot> load 'test.gp'
我收到错误
gnuplot> pl @test2
^
"test.gp", line 4: invalid character @'
似乎宏处理器在脚本和交互模式之间的工作方式不同(宏嵌套深度)。
有没有可能解决这个问题?
我按如下方式更改脚本:
set macro
test1 = "sin(x)"
test2 = "@test1"
test3 = "@test2"
test4 = "@test3"
pl @test1
pl @test2
pl @test3
pl @test4
在交互模式下,它会在pl @test4
Too many levels of nested macros
时中止。
在Scriptexecution上,它在第一个预处理步骤之后在第二个绘图命令上中止:
gnuplot> pl @test1
^
"test.gp", line 7: invalid character @
答案 0 :(得分:1)
load
命令的问题是一个错误,请参阅#1246 load command and macro expansion,该版本已于2013-06-28开发版中修复。
交互模式中的限制是预期的行为,ChangeLog
说明了上述错误修复:
- src / misc.c(load_file):扩展宏时最多3级 单步执行“加载”操作。这与允许的深度相匹配 用于顶级命令行。 Bug#1246