gnuplot for
gnuplot v4.6がでて半年くらいたつが、新機能まとめ的な記事を見掛けないので書いてみる。
今回はfor文について。
このブログfor文ばっかだな。
徐に例をあげてみる
do for [j=0:4]{
title sprintf("%dth data",j)
plot for [i=0:5] sprintf("data%d",j) index i title sprintf("%dth",i)
pause -1
}
実際に使っているのを少し改変してみた。
dataファイルdata0,data1,data2,data3,data4があり、
その各々に5ブロック分のデータが書いてある様な状況である。
偏微分方程式の時間発展とか計算する時によくある状況である。
順に説明していこう
sprintf
gnuplot中で数値を文字列に変換したいことはままある。 例えば上記の様にファイル名を生成したい時などである。 sprintfはCの関数と同様であり、char*に書きこむ変わりにその場に展開する。つまり plot sprintf("data%d",1)
が plot "data1"
と同じ挙動を示す。
plot for
これはv4.4で追加された機能だと思う(未確認、v4.4では動作確認済み) plot for [i=0:2] x**i
のように書くと
plot x**0 , x**1 , x**2
と同じ挙動が得られる。