2014-11-07 6 views
0

Я смущен тем, как использовать for-loops в gnuplot.For-loops in gnuplot

Следующий код работает отлично:

plot for [quadIter=0:270:90] \ 
path using 1:(column(1 + quadIter)) 

Это участки 4 кривых на одном графике.

Я также хочу построить 4 горизонтальные линии на одном графике. Я написал следующий скрипт, чтобы сделать это:

plot for [quadIter=0:270:90] \ 
path using 1:(column(1 + quadIter)) , \ 
path_to_expt[1 + quadIter/3: 19] \ 

Но это участки только одну дополнительную линию на графике, так что оно не включено в для петли. Пожалуйста, скажите мне, как получить дополнительную линию, включенную в цикл?

Кроме того, постоянное значение, которое нанесено на график, не является значением, которое я ожидал от графика. Пожалуйста, скажите мне, как напечатать значение quadIter на экране, чтобы я мог проверить его на значение в файле?

Наконец, я попытался просто построить 4 горизонтальные линии с помощью этого сценария:

plot for [quadIter=0:270:90] \ 
path_to_expt[1 + quadIter/3: 19] \ 

Но я получил сообщение об ошибке «Non-числовую строку, найденную где числовое выражение, как ожидается». Я нахожу это странным, поскольку я не получил это сообщение об ошибке, когда я запускал второй скрипт, но, поскольку второй скрипт не работает, как бы я хотел, надеюсь, получив второй и третий скрипты, я буду иметь лучшее понимание того, как for-loops работают в gnuplot.

Благодарим за помощь!

ответ

3

Итерация for применяется только к текущему выражению графика. Линия

plot for [i=1:4] i*x, i*x**2 

создает пять участков, в то время как для того, чтобы получить восемь участков вы должны сделать

plot for [i=1:4] i*x, for [i=1:4] i*x**2 

Что касается вашего последнего выражения path_to_expt[1 + quadIter/3: 19]: выражения массива не поддерживается Gnuplot (однако path_to_expt выглядит как один).

Смежные вопросы