Seite 1 von 1

Wie Matrix-Vektorprodukt bilden?

Verfasst: Mittwoch 14. August 2019, 13:49
von rickm
Hallo, ich bin Python-Einsteiger und nutze Numpy für eine regelungstechnische Anwendung. Nun habe ich schon festgestellt, dass es leider nicht ganz so funktioniert wie in MatLab. Wie es mit dem dyadischen Produkt funktioniert, habe ich nun bereits herausgefunden.
Allerdings kann ich keine Matrix mit einem Spaltenvektor multiplizieren.

Mein Beispiel:

Code: Alles auswählen

A=  np.array( ((0,1,0,0), (0, -26,-5,0.75), (0,0,0,1), (0,90,47.6854,-2.5)) )    # 4x4-Matrix
B=  np.array ( ((1), (5), (-8), (2)) )   # 4x1 Spaltenvektor
produkt= np.dot(A,B)
Ich bekomme mit np.dot als Ergebnis eine 4x4-Matrix, es muss aber ein 4x1 -Spaltenvektor werden
wenn ich statt np.array np.matrix für beide Matrizen verwende und den *-Operator verwende, dann kommt die Fehlermeldung, dass die Dimensionen nicht stimmen. (Auch, wenn ich B transponiere)

Wie bekomme ich es richtig?

Re: Wie Matrix-Vektorprodukt bilden?

Verfasst: Mittwoch 14. August 2019, 14:27
von rickm
Es hat sich eigentlich schon erledigt. Ich habe die Print-Ausgabe in eine Schleife gelegt, in der die Matrix eine andere Variable zugewiesen bekommt, bei der die DImensionen aber noch nicht stimmten.

Re: Wie Matrix-Vektorprodukt bilden?

Verfasst: Mittwoch 14. August 2019, 15:05
von Sirius3
Für Array-Werte benutzt man normalerweise eckige Klammern. Runde Klammern um einzelne Zahlen haben keinen Effekt. Statt np.dot(A, B) finde ich A.dot(B) lesbarer, oder gleic den Matrixproduktiperator A @ B.