сохранить результаты каждой итерации - PullRequest
0 голосов
/ 19 декабря 2018

Здравствуйте, я новичок в python, и мне нужно получить вывод каждой итерации из цикла for.Я бегу две петли.Мне нужно получить выходные данные 2nd для цикла отдельно, чтобы я мог построить весь график в одном окне.В настоящее время я получаю результаты отдельно.Может кто-нибудь помочь мне, как решить проблему?

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()

1 Ответ

0 голосов
/ 19 декабря 2018

Хорошо, вы запустили этот точный код?Я получаю

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 соответственно, но снаружи (обратите внимание на отступы).В противном случае вы создаете новую фигуру на каждой итерации и помещаете на эту фигуру подплот, связанный с этой итерацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...