2017-04-15 4 views
0

Ich bin neu zu numpy und haben nur begrenzte Kenntnisse von Matlab. Ich habe folgenden Matlab Befehl Zeilen- und Spaltenvektoren zu erzeugen:Matlab Vektor in numpy

X=(-N:N) 
Y=column(X.^2) 

Ich versuche, die gleiche Sache in numpy zu schaffen, sondern es ist die Form des Vektors X und Y gleich trotz tun transponiert

import numpy as np 
N=10 
X=np.arange(-N,N) 
Y=X**2.T 
print X.shape, Y.shape 

Könnten Sie bitte lassen Sie mich wissen, wenn np.arange() ist das Äquivalent von (-N: N) in Matlab und was ist das Problem mit der Spalte Vektor in numpy?

+0

erstellen "Spaltenvektor" durch eine neue Achse und fügte hinzu: '(X ** 2) [:, np.newaxis]'. – Divakar

+0

Auch Sie wissen das wahrscheinlich, aber wenn Sie einen kürzeren Weg wollten, um einen Spaltenvektor in Matlab zu erstellen, können Sie einfach den Transponieroperator verwenden: 'Y = X.^2'' – qbzenker

Antwort

0

Es ist ein wenig ausführlicher in Python:

import numpy as np 

X = np.arange(-10,11) #same as X=-10:10; in matlab 

Y = X**2 # same as X.^2 in matlab 
Y.shape = (np.size(Y),1) #forces it to be column vec 
+0

danke @qbzenker –

+0

kein Problem! Wenn es Ihr Problem gelöst hat, können Sie bitte das Häkchen neben meiner Antwort markieren! – qbzenker