python anfänger problem

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.
Antworten
jjonson123
User
Beiträge: 11
Registriert: Sonntag 5. April 2015, 18:43

ich habe die funktion fast geschafft. ich muss noch das mit den passenden Dimensionen hinkriegen.

ich hab ne frage:
wieso brauchen die beiden listen ( ` v1, matrix[0] ` )die gleichen längen?
warum kommt beim ersten index von matrix * 3 nicht 24, sondern 18 raus? ich müsste die liste v1 mit einem index mit dem Wert 2 erweitern damit die listen die gleiche länge haben damit 24 rauskommt? hmm

Code: Alles auswählen

v1 = [2,2,2]
matrix = [[3,3,3,3],[2,2,2],[5,5,5]]

print sum(m*v for m,v in zip(v1,matrix[0]))
print zip(v1,matrix[0])
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

jjonson123 hat geschrieben:wieso brauchen die beiden listen ( ` v1, matrix[0] ` )die gleichen längen?
Weil es mathematisch sonst keinen Sinn ergibt?! Wenn du eine Matrix M mit einem nx1-Vektor multiplizieren willst, dann muss die Matrix die Form mxn haben. Wie willst du denn sonst jede Zeile des Vektors mit jeder Spalte der Matrix multiplizieren? ;-)
jjonson123 hat geschrieben:warum kommt beim ersten index von matrix * 3 nicht 24, sondern 18 raus? ich müsste die liste v1 mit einem index mit dem Wert 2 erweitern damit die listen die gleiche länge haben damit 24 rauskommt? hmm
Das könnte man natürlich tun, aber das wäre reichlich sinnlos. Was soll denn deiner Meinung nach eine Matrix sein, welche verschiedene Zeilenlängen hat. Das ergibt doch gar keinen Sinn. Ich habe das Gefühl, dass nicht die Umsetzung das Problem ist, sondern das Verständnis der Matrixmultiplikation. Nimm dir doch mal ein Blatt Papier, einen Stift und multipliziere mal von Hand. Dann wirst du auch ganz schnell feststellen, dass sich dein Problem in einfache Teilprobleme zerlegen lässt.
Das Leben ist wie ein Tennisball.
Antworten