我有一个python脚本NeoprobeApp.py
,其中调用了拟合函数,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
我究竟做错了什么?
您只导入fit
函数,而不导入Parameter
类。
使用
from Parameter import fit, Parameter
而不只是
from Parameter import fit
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句