我想做一个函数,通过添加不同数量的GaussianModel类来生成CompositeModel类
我试着把Gausslist求和,它将gauss1替换为gauss6。我也试过用Gausslist来代替mod,但那不起作用
原来我有:
gauss1 = models.GaussianModel(prefix='g1_')
pars = gauss1.make_params(center=_259V[0][0], amplitude=_259V[1][0])
gauss2 = models.GaussianModel(prefix='g2_')
pars.update(gauss2.make_params(center=_259V[0][1], amplitude=_259V[1][1]))
gauss3 = models.GaussianModel(prefix='g3_')
pars.update(gauss3.make_params(center=_259V[0][2], amplitude=_259V[1][2]))
gauss4 = models.GaussianModel(prefix='g4_')
pars.update(gauss4.make_params(center=_259V[0][3], amplitude=_259V[1][3]))
gauss5 = models.GaussianModel(prefix='g5_')
pars.update(gauss5.make_params(center=_259V[0][4], amplitude=_259V[1][4]))
gauss6 = models.GaussianModel(prefix='g6_')
pars.update(gauss6.make_params(center=_259V[0][5], amplitude=_259V[1][5]))
mod = gauss1 + gauss2 + gauss3 + gauss4 + gauss5 + gauss6
这将给我一个由六个高斯函数组成的模型,但是我想把它推广到当我有更小或更多的函数时。到目前为止,我已经完成了下面的工作,它允许我生成GaussianModels列表(Gausslist),其长度取决于peak\u数据。所以峰值的数量对应于我想要多少高斯数:
Gausslist = []
Gausslist.append(models.GaussianModel(prefix='g0_'))
pars = Gausslist[0].make_params(center=_259V[0][0],amplitude=peak_data[1][0])
for i in range(1, len(peak_data[1])):
Gausslist.append(models.GaussianModel(prefix='g{}_'.format(i)))
pars.update(Gausslist[i].make_params(center=_259V[0][i], amplitude=peak_data[1][i]))
#
但我不知道如何应对:
mod = gauss1 + gauss2 + gauss3 + gauss4 + gauss5 + gauss6
我试着把Gausslist求和,它将gauss1替换为gauss6。我也试过用Gausslist来代替mod,但那不起作用
我基本上想添加这些高斯模型来形成一个复合模型,但我不知道如何添加类,或者如果可能的话
尝试以下操作:
现在您应该了解如何使用
model
,无论peak_data[1]
序列中有多少峰值FWIW,我可能会建议存储峰值数据的
x
和y
值,以便您可以执行以下操作:因为这可能会给出更好的起始值
您可以使用内置的python reduce函数:
相关问题 更多 >
编程相关推荐