0

我写了下面的代码:

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函数转换为系列。

4

0 回答 0