我试图为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值运行整个过程。
答案 0 :(得分:0)
应该是
for i in pc
range(n)
返回包含范围0, n
的iterable。在这种情况下,您想要的迭代似乎只是pc
。