我试着用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值下运行整个过程吗
应该是
for i in pc
range(n)
返回一个包含范围0, n
的iterable。在这种情况下,您想要的iterable似乎只是pc
相关问题 更多 >
编程相关推荐