2012-06-02 28 views
2

我想定義它返回一個隨機數的函數:如何在gnuplot中定義一個沒有參數的函數?

gnuplot> rnd() = int(rand(0)*2**24) 
     ^
     invalid command 

我需要添加一個參數x停止錯誤消息:

gnuplot> rnd(x) = int(rand(0)*2**24) 

是否有可能定義一個沒有參數的函數?

回答

3

我不認爲這是可能的(查看help user-defined中函數的語法)。據我所知 - 使用rand是唯一有用的時間 - 在所有其他情況下,您的「功能」只會評估爲常數。我猜gnuplot開發者根本沒有想到這個(有趣)的角落案例,或者他們認爲它不足以實現。

我希望我對此有錯,有人會來證明它,但我不認爲我是。我認爲最簡單的解決方法就是像上面提到的那樣傳遞一個參數。如果你真的不喜歡那樣,你可以使用宏:

set macro 
rnd="(int(rand(0)*2**24))" 
print [email protected] 
相關問題