2012-06-02 4 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] 
Смежные вопросы