2013-04-29 69 views
0

我試圖找到網上描述的類似錯誤,但沒有找到任何東西。希望有人能幫忙。在gnuplot中使用宏4.6.3

我用類似這樣的例子有gnuplot的4.4p3代碼:

set macros 
col_TIME = '1' 
col_meas = '2' 
range = 'using ([email protected]_TIME/3600):@col_meas' 
plot "file.txt" @range 

但隨着gnuplot的4.6p3在執行最後一行則出現錯誤。它正確地替代

plot "file.txt" using ([email protected]_TIME/3600):@col_meas 

首先,但後來抱怨在這一行中的第一@與「無效字符@」。

+0

我對新版本的解決方法是現在使用的代碼,比如'範圍=「使用($」 col_TIME「/ 3600。)」。col_meas' – terter 2013-04-29 13:07:22

回答

1

這基本上是同樣的事情,你的解決辦法,但我可能會使用sprintf:的gnuplot

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

新版本還支持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') 
+0

謝謝你非常喜歡printf版本,因爲它更容易閱讀。 – terter 2013-04-30 12:02:05