你好,我是python的新手,我需要从for循环中获取每次迭代的输出。我正在运行两个for循环。我需要分别获取2nd for循环的输出,以便可以在单个窗口中绘制整个图。目前,我正在分别获得输出。谁能帮助我解决问题?
import numpy as np
import matplotlib
from matplotlib import pyplot as plt
from matplotlib.figure import Figure
x= [2,6,9,12]
y= [3,7,12,18]
T= [0,4,5,8]
x_s= x[0]
y_s= y[0]
v_f= 0
N= 3
for i in range(N):
v_i = 0
a3= []
a4= []
a5= []
for j in range(T[i]):
a0= x[j]
a1= v_i
X= np.array([[1,T[j],T[j]**2],
[1,T[j+1],T[j+1]**2],
[0,1,2*T[j]]])
A= np.array([x[j],x[j+1],v_i])
c1= np.linalg.solve(X,A)
a0= c1[0]
a1= c1[1]
a2= c1[2]
v_i= a1 + 2*a2*T[j+1]
t= np.linspace(T[j],T[j+1])
print( a0,a1,a2)
print (v_i)
a3.append(a0)
a4.append(a1)
a5.append(a2)
xr= a0 + a1*t + a2*t**2
f1=plt.figure()
ax = f1.add_subplot(232)
ax.plot(t,xr)
plt.show()
答案 0 :(得分:0)
好吧,您是否运行了确切的代码?我得到
Traceback (most recent call last):
File "test.py", line 36, in <module>
[1,T[j+1],T[j+1]**2],
IndexError: list index out of range
无论如何,您需要将plt.figure()
和plt.show()
分别放在for loop
之前和之后,但要放在外面(注意缩进)。否则,您将在每次迭代时创建一个新图形,并在该图形上放置与该迭代相关的子图。