我写了以下代码:
def model(axis, p):
a1, t1, a2, t2, a3, t3, a4, t4 = p
return a1*np.exp(-axis/t1) + a2*np.exp(-axis/t2) + a3*np.exp(-axis/t3) + a4*np.exp(- axis/t4)
此代码是4个指数的定义。我必须解决这个功能,
使用另一个系列返回不同时间点的系列。要做到这一点,我写了
以下代码:
def Recsig(N, irf, model):
conv_sig = [0.0]*irf.size
for n in range(0,N+1):
SUM = 0.0
for m in range(0, n+1):
SUM = irf[m]*model[n-m] + SUM
conv_sig[n] = SUM
result = np.squeeze(conv_sig)
return result
Recsig功能的结果必须是一系列。我有另一个系列
实验。目标是使用非线性最小二乘法,实验系列和
在函数模型中找到参数,a1,t1 .... a4,t4。
问题是当我想调用它时,模型函数不接受参数。因此,我无法制作一系列4个指数并将其赋予Recsig函数。
更多解释:
我使用TCSPC设置及时测量了某种细菌的荧光发射,
时间相关的单光子计数。记录的信号或荧光是
IRF的卷积,仪器响应函数和model
,在这种情况下为4
指数函数。我想卷积,做卷积,irf和model
。然后我
将这个卷积的结果作为一系列时间。该系列的每个元素都是
某个时间点的卷积值。现在,我可以使用卷积系列和
记录荧光以估算model
中的自由参数。
问题在于我无法将model
函数转换为具有给定时间轴的系列。
numpy.exp(axis/t1)
尝试评估此指数的数值,但只是轴
是数值,t1是在拟合中确定的下注参数。作为
结果mumpy无法将model
函数转换为系列。