2017-09-25 2 views
0

J'ai une question. Ci-dessous est mon extrait de code où j'essaie de remplir un vecteur donné une fonction yv. Quand j'exécute le code, il n'y a pas d'erreur, mais il n'imprime pas de résultat, et il ne montre pas l'intrigue que je veux.Remplissage de deux vecteurs à partir de la fonction F (x)

import matplotlib as plt 
import numpy as np 
import math as m 

e = 2.17 
sigma = 1 
mu = 0 
xv = np.linspace(-4, 4, 100) 

for rows in range(0): 
    for cols in range(100): 
     yv = 1/(sigma * (2 * m.pi) ** (-0.5)) * e ** (-0.5) * ((((xv - mu)/sigma)) ** 2) 
     print('xv= {}'.format(xv)) 
     print('yv= {}'.format(yv)) 

     plt.plot(xv, yv, 'b-o', linewidth = 2, label = 'xv vs. yv') 
     plt.show() 

Que manque-t-il?

Merci encore! Brandon

+0

'range (0)' ne produit aucun nombre. –

+0

Supprimer les deux lignes avec "plage". Le but de la vectorisation de NumPy est que vous n'avez pas besoin d'exécuter une boucle Python. – tom10

+0

@ tom10 Lorsque j'effectue cet ajustement, j'obtiens l'erreur suivante ... AttributeError: le module 'matplotlib' n'a pas d'attribut 'plot' – Brandon

Répondre

0

Votre importation de matplotlib n'était pas tout à fait correcte. Essayez ceci:

from matplotlib import pyplot as plt 
import numpy as np 
import math as m 

e = 2.17 
sigma = 1 
mu = 0 
xv = np.linspace(-4, 4, 100) 

yv = 1/(sigma*(2*m.pi)**(-0.5))*e**(-0.5)*((((xv-mu)/sigma))**2) 
print('xv= {}'.format(xv)) 
print('yv= {}'.format(yv)) 

plt.plot(xv, yv, 'b-o', linewidth=2, label='xv vs. yv') 
plt.show() 
+0

Cela fonctionne! Je vous remercie. On dirait parfois que ce sont les choses qui sont juste en face de vous que vous ne voyez pas. – Brandon