Problem mit Matrizenmultiplikation

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
enna
User
Beiträge: 10
Registriert: Freitag 24. August 2007, 09:11

Problem mit Matrizenmultiplikation

Beitragvon enna » Montag 27. August 2007, 14:50

Hallo!
Ich würde gern eine Matrix mit einem Vektor multiplizieren. Ich bekomme aber immer eine Fehlermeldung.

Code: Alles auswählen

>>> A=matrix([[1,1,1],[2,0,0]])
>>> y=matrix([[1,1,1]])
>>> A*y


liefert folgende Fehlermeldung:
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
File "C:\Programme\Mathe\Python\lib\site-packages\numpy\core\defmatrix.py", line 158, in __mul__
return N.dot(self, other)
ValueError: objects are not aligned

Ich sitz jetzt schon über eine Stunde dran, krieg's aber nicht hin. :(
Bin daher für jede Hilfe dankbar.
BlackJack

Beitragvon BlackJack » Montag 27. August 2007, 15:13

Du versuchst zwei Matrizen zu multiplizieren, die von ihrer Form nicht zueinander passen. Je nachdem was Du möchtest musst Du entweder `y` so angeben:

Code: Alles auswählen

In [105]: A = numpy.matrix([[1, 1, 1], [2, 0, 0]])

In [106]: y = numpy.matrix([[1], [1], [1]])

In [107]: A * y
Out[107]:
matrix([[3],
        [2]])


Oder als `array`:

Code: Alles auswählen

In [108]: y = numpy.array([1, 1, 1])

In [109]: A * y
Out[109]: matrix([[3, 2]])
enna
User
Beiträge: 10
Registriert: Freitag 24. August 2007, 09:11

Beitragvon enna » Montag 27. August 2007, 15:19

aaaargh! Das ist peinlich. :oops:

Vielen Dank!
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Montag 27. August 2007, 18:47

Dritte Möglichkeit:

Code: Alles auswählen

>>> from numpy import matrix
>>> A = matrix( ([1,1,1], [2,0,0]) )
>>> y = matrix( ([1,1,1]) )
>>> A*y.transpose()
matrix([[3],
        [2]])
>>> A*y.T # oder die Kurzform
matrix([[3],
        [2]])

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]