Credits Overview Plotting Styles Commands Terminals

繰り返し (iteration)

figure_newsyntax

gnuplot は、繰り返し (iteration) コマンドやブロック構造を扱うための if/else/while/do をサポートしています。以下参照: if, while, do。 コマンド plot, set で単純な繰り返しも可能です。以下参照: plot for。複数のコマンドを包含する一般的な繰り返しは、下で紹介するブ ロック構造を利用することで行えます。 関連する新しい機能である数式型の以下も参照: summation。 以下は、これらの新しい構文機能をいくつか利用した例です:

      set multiplot layout 2,2
      fourier(k, x) = sin(3./2*k)/k * 2./3*cos(k*x)
      do for [power = 0:3] {
          TERMS = 10**power
          set title sprintf("%g term Fourier series",TERMS)
          plot 0.5 + sum [k=1:TERMS] fourier(k,x) notitle
      }
      unset multiplot

繰り返しは、以下のような書式による繰り返し指定で制御します。

     for [<var> in "string of N elements"]

または

     for [<var> = <start> : <end> { : <increment> }]

最初の書式では <var> は文字列変数で、その後ろに指定した文字列に含まれ る 1 番目から N 番目までの単語文字列を順に値として取ります。 2 番目の書式では、<start>, <end>, <increment> は整数、または整数値を取 る数式です。

繰り返し変数の有効範囲 (scope) は、その繰り返しの中だけです。以下参照: scope。繰り返し変数の値を、その実行ブロック内で永続的に変更すること はできません。繰り返し変数が繰り返しの前に値を持っていたとしたら、その 値は繰り返しの終了時に保持、または復帰されます。 例えば、以下のコマンドは、1 2 3 4 5 6 7 8 9 10 A を出力します。

     i = "A"
     do for [i=1:10] { print i; i=10; }
     print i