2017-02-20 11 views
0

ブラウン運動のN個の軌道をインクリメントI〜N(0、dt)で生成するプログラムを作成しました。私はそれらをW(1)> = 1 & & W(2)> = 2の条件でテストしています。出力として、私はもちろん、タイムポイントデータをファイル "Wiener_data.dat"に保存しています。条件1を満たすポイントは、 "Wiener_data_pts1.dat"に保存され、条件2は "Wiener_data_pts2.dat"に保存されます。私は両方の条件を満たす軌跡のインデックスを別々のファイル "Wiener_data_index.dat"に保存しています。GnuPlotデータの可変カラムインデックス

# total number of trajectories satisfying conditions 1 and 2 
12 
# indices 
143 146 173 281 354 496 503 610 613 755 761 965 
私が何をしたいのか

は次のようになります。このようなGNUPLOTのプロット軌跡: N=1000 Trajectories

はので、私は手動で

、当然のことながら、ためにかなり退屈だろう
plot for [i=1:1000] 'Wiener_data.dat' using 1:i+1 with linespoints ls 3 , 
for [i=143:143] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=146:146] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=173:173] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=281:281] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=354:354] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=496:496] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4, 
for [i=503:503] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=610:610] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=613:613] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=755:755] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=761:761] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
for [i=965:965] 'Wiener_data.dat' using 1:i+2 with linespoints ls 4 , 
Wiener_data_pts1.dat' using 1:2 with points ls 2 , 'Wiener_data_pts2.dat' 
using 1:2 with points ls 5 

それをやりました多数の軌道。

「Wiener_data_index.dat」のインデックスが与えられているので、特定の軌跡を別の色でプロットしたいと思います。私はそれを行うことができる方法はありますか?おそらく、インデックスデータファイルを配列に保存し、インデックスを反復処理するときにその値にアクセスすることによって?

答えて

0

私は、例えば次のようなものが動作するはずだと思う:

indices = system("gawk 'NR==4' Wiener_data_index.dat") 
plot for [idx in indices] 'Wiener_data.dat' using 1:(column(idx+2)) w l t sprintf("index %s", idx)