我正在尝试使用lmfit将拟合数据曲线化到模型中,但每当我尝试使用模型的params属性(例如参数的设置值)做任何事情时,它都会告诉我它找不到它们。 我的程序很长,而且还有相当多的东西,所以我尝试运行示例doc_model1.py,可在此处找到http://cars9.uchicago.edu/software/python/lmfit/model.html
#doc_model1.py
#!/usr/bin/env python
#<examples/doc_model1.py>
from numpy import sqrt, pi, exp, linspace, loadtxt
from lmfit import Model
import matplotlib.pyplot as plt
data = loadtxt('model1d_gauss.dat')
x = data[:, 0]
y = data[:, 1]
def gaussian(x, amp, cen, wid):
"1-d gaussian: gaussian(x, amp, cen, wid)"
return (amp/(sqrt(2*pi)*wid)) * exp(-(x-cen)**2 /(2*wid**2))
gmod = Model(gaussian)
result = gmod.fit(y, x=x, amp=5, cen=5, wid=1)
print(gmod.fit_report())
...
IDLE并没有反对程序试图做的任何事情,但是当我尝试在那之后做任何参数时,例如
for name, par in gmod.params.items():
print(name, par)
或
gmod.params[’amp’].value = 10.0
(这些都是直接从文档中复制的)我得到了
AttributeError: 'Model' object has no attribute 'params'
同样,每当我尝试使用set_params做任何事情时,它都表示Model也没有该属性。模型的所有其他属性似乎都工作正常,为什么不参数? 我在运行Windows7的计算机上使用Python2.7