13.4 User-defined variables and functions

新たなユーザ定義変数と 1 個から 5 個までの引数を持つユーザ定義関数を、 任意の場所で定義したり使ったりすることができます。それは plot コマン ド上でも可能です。

ユーザ定義関数書式:

     <func-name>( <dummy1> {,<dummy2>} ... {,<dummy5>} ) = <expression>

ここで < expression> は仮変数 < dummy1> から < dummy5> で表される数式です。

ユーザ定義変数書式:

     <variable-name> = <constant-expression>

例:

     w = 2
     q = floor(tan(pi/2 - 0.1))
     f(x) = sin(w*x)
     sinc(x) = sin(pi*x)/(pi*x)
     delta(t) = (t == 0)
     ramp(t) = (t > 0) ? t : 0
     min(a,b) = (a < b) ? a : b
     comb(n,k) = n!/(k!*(n-k)!)
     len3d(x,y,z) = sqrt(x*x+y*y+z*z)
     plot f(x) = sin(x*a), a = 0.2, f(x), a = 0.4, f(x)


     file = "mydata.inp"
     file(n) = sprintf("run_%d.dat",n)

最後の 2 行の例は、ユーザ定義文字列変数と、ユーザ定義文字列関数を意味 しています。

円周率 pi は既に定義されています。しかしこれは決して手品のようなもの ではなく、好きなように再定義することができます。他にもいくつかの変数が、 例えば対話型入出力形式でのマウス操作や当てはめ (fit) などの gnuplot の 動作状態に応じて定義されます。詳細は gnuplot-defined variables を参 照してください。

ある変数 V が既に定義されているかどうかは、式 exists("V") でチェックで きます。例:

     a = 10
     if (exists("a")) print "a is defined"
     if (!exists("b")) print "b is not defined"

変数名や関数名の命名規則は、大抵のプログラミング言語と同じで、先頭はア ルファベットで、その後の文字はアルファベット、数字、"$", "_" が使えま す。

show functions, functions, gnuplot-defined variables, macros も参照してください。

竹野茂治@新潟工科大学
2007年3月4日