研究で必要な雑多な知識をごった煮で
プロフィール

termoshtt

Author:termoshtt
大学院生
専攻:流体物理学
Editor: vim
Language: C++,python

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/-- --:-- スポンサー広告 TB(-) CM(-)
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 

と同じ挙動が得られる。

do for


これはv4.6での新機能である。
もう特に説明の必要はないと思うが{}でくくられた命令をループ実行する。
{}を使った同様の構文がif/whileでも使えるらしい。
この辺りは次回に



2012/07/31 05:31 gnuplot TB(0) CM(0)
コメント















 管理者にだけ表示を許可する

トラックバック
http://termoshtt.blog110.fc2.com/tb.php/22-555b1848
検索フォーム
ブロとも申請フォーム
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。