用于浮点数和不均匀分布的for循环

2024-05-04 08:42:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用for循环来表示pc的某个值。这里我举一个例子

pc=(0.02,0.05,0.1,0.2,0.5)

for i in range (pc):
    phiCrit = i*np.max(phiPart_t)
    SigU = np.zeros(Nt)
    SigL = np.zeros(Nt)
    for k in range(0,Nt):
        toto = np.where(phiPart_t[:,k]>phiCrit)
        SigU[k] = Sig[np.max(toto)]
        SigL[k] = Sig[np.min(toto)]
    fitfuncU = lambda p, x: p[0] - (p[1]*np.log(x))
    errfuncU = lambda p, x, y: y - fitfuncU(p, x)
    time_fit=np.where(time>20)
    pfinal, success = optimize.leastsq(errfuncL, pinit[:], args=(time[time_fit], SigU[time_fit]))
    y=fitfuncU(pfinal,time)
    x=time[0:696]
    dx = x[1]-x[0]
    dydx = np.diff(y)/dx
    plt.figure(21)

    plot(x, dydx, label='time vs dfitfunc with various phi')
    plt.xlabel('time')
    plt.ylabel('dSigU')
    plt.grid()
    plt.xlim(0,3500)
    plt.legend()
    savefig('21.png')

我的目标是在同一个图中绘制几个time vs dydx的图。我在这里得到的错误是range() integer end argument expected, got tuple.我也试着把pc列为列表,但没有成功。除了不同的变量,有人能解释我如何在不同的pc值下运行整个过程吗


Tags: infortimenprangepltmaxfit