2017-02-20 22 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)