我写了下面的代码:
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 函数的结果必须是一个序列。我有另一个系列由
实验。目标是使用非线性最小二乘法、实验系列和
Recsig 查找函数模型中的参数,a1,t1 ....a4,t4。
问题是模型函数在我想调用它时不接受参数。结果,我无法制作一系列 4 个指数并将其提供给 Recsig 函数。
更多解释:
我使用TCSPC设置及时测量了某种细菌的荧光发射,
时间相关单光子计数。记录的信号或荧光是
IRF、仪器响应函数和 a 的卷积model
,在本例中为 a 4
指数函数。我想卷积,做卷积,irf 和model
. 然后我
将把这个卷积的结果作为一个时间序列。该系列的每个元素都是
卷积在某个时间点的值。现在,我可以使用卷积系列和
记录荧光以估计 中的自由参数model
。
问题是我无法将model
函数转换为具有给定时间轴的序列。
numpy.exp(axis/t1)
试图评估这个指数的数值,但只是轴
是一个数值,t1 是一个尚未在拟合中确定的参数。作为一个
结果 mumpy 无法将model
函数转换为系列。