NeoprobeApp.py
フィッティング関数を呼び出すpython スクリプトをParameter.py
Parameter.py
以下に示します
from scipy import optimize
import numpy as np
class Parameter:
def __init__(self, value):
self.value = value
def set(self, value):
self.value = value
def __call__(self):
return self.value
def fit(function, parameters, y, x = None):
def f(params):
i = 0
for p in parameters:
p.set(params[i])
i += 1
return y - function(x)
if x is None: x = arange(y.shape[0])
p = [param() for param in parameters]
optimize.leastsq(f, p)
フィット関数を正常にインポートしましたfrom Parameter import fit
。ただし、パラメーターを初期化しようとすると
# Define initial parameters of Gaussian fit
mu = Parameter(0)
sigma = Parameter(20)
height = Parameter(1)
#define Gaussian fit function
def f(angles): return height() * exp(-((angles-mu())/sigma())**2)
fit(f, [mu, sigma, height], n_col_cnts)
エラーメッセージが表示されます
Traceback (most recent call last):
File "NeoprobeApp.py", line 228, in OnPlot
mu = Parameter(0)
NameError: global name 'Parameter' is not defined
私は何を間違っていますか?