2

我想定义一个返回随机数的函数:

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

我需要添加一个参数x来停止错误消息:

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

是否可以定义没有参数的函数?

4

1 回答 1

3

我认为这是不可能的(查看 中函数的语法help user-defined)。据我所知——使用rand是唯一有用的时候——在所有其他情况下,你的“函数”只会计算为一个常数。我猜 gnuplot 开发人员只是没有想到这个(有趣的)极端案例,或者他们认为它没有足够的用处来实现。

我希望我错了,其他人会来证明这一点,但我不认为我是。我认为最简单的解决方法是传递一个您已经提到的参数。如果你真的不喜欢这样,你可以使用宏:

set macro
rnd="(int(rand(0)*2**24))"
print 5+@rnd
于 2012-06-02T12:05:51.467 回答