Кажется, что отдельные значения массива в gnuplot не работают так же, как обычные переменные.
Я пробовал следующий код, приведенный ниже.
# Following code doesn't work.
reset
# Parameters and fitting curve
n = 3
array p[n]
p[1] = 1.3 ; p[2] = 0.2 ; p[3] = 0.7
f(x) = p[1] * sin( p[2] + p[3] * x )
set fit
fit f(x) 'datafile.txt' using 1:2 via p[1], p[2], p[3]
unset fit
Я получаю следующую ошибку: line 11: unknown type in real()
Обратите внимание, что если я изменю массивы p[1], p[2], p[3]
на a, b, c
, код сработает.
# Following works.
reset
a = 1.3 ; b = 0.2 ; c = 0.7
f(x) = a * sin( b + c * x )
set fit
fit f(x) 'datafile.txt' using 1:2 via a, b, c
unset fit
Частичные данные приведены ниже (должны быть сохранены как «datafile.txt») для полноты:
# x y
0 0.0222457
0.1 0.113168
0.2 0.252268
0.3 0.378091
0.4 0.397219
0.5 0.577536
0.6 0.621418
0.7 0.695817
0.8 0.741057
0.9 0.849566
1 0.864276
Итак, мой вопрос:
- Верно ли мое предположение, что массивы gnuplot не работают так же, как обычные переменные?
- Есть ли способ заставить массивы вести себя так же, как обычные переменные?