Gnuplot: использование массивов в качестве параметров в кривой соответствия не работает - PullRequest
0 голосов
/ 24 января 2019

Кажется, что отдельные значения массива в 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  

Итак, мой вопрос:

  1. Верно ли мое предположение, что массивы gnuplot не работают так же, как обычные переменные?
  2. Есть ли способ заставить массивы вести себя так же, как обычные переменные?
...