使用for循环进行浮点数和不均匀分布

时间:2017-05-31 21:33:39

标签: python numpy

我试图为pc使用某个值的for循环。这里我举一个例子,

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绘制phicrit。我在这里得到的错误是range() integer end argument expected, got tuple.我也尝试将pc作为列表,但它没有用。除了不同的变量,有人可以解释我如何为不同的pc值运行整个过程。

1 个答案:

答案 0 :(得分:0)

应该是

for i in pc

range(n)返回包含范围0, n的iterable。在这种情况下,您想要的迭代似乎只是pc