Multiplikation von Vektoren

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
01detlef
User
Beiträge: 105
Registriert: Montag 10. Mai 2010, 21:59

Hallo zusammen,

ich habe eine Frage zur Multiplikation von Vektoren:

Code: Alles auswählen

sv = [0,1,2,3,6,7]   #array
for i in range(n):
  multi[i] = +np.dot(vektor1[sv,2].T,vektor2[sv,1]) 



Ich möchte gerne Multipizieren, aber in Vektor1 und Vektor2 sollen nur die Indizes aus sv verwendet werden. Also die vollständigen Vektoren sind mit 1000 Einträgen gefüllt, für die Multiplikation sollen nur die in sv verwendet werden.

Wie kann man das machen?

mfg
BlackJack

@01detlef: Das Beispiel zeigt deutlich mehr als die Multiplikation von Vektoren. Wenn man den Teil aus dem Beispiel isoliert, dann ist die Frage was Dir an dem Ergebnis denn nicht gefällt. Beziehungsweise wäre es schön wenn Du das auf das Teilergebnis reduzieren würdest was Dir nicht gefällt. Mach Dir ein Beispiel mit Werten und schau Dir da jedes Teilergebnis an, angefangen mit den einfachsten und dann mit den Zusammengesetzten, bis Du zu dem kommst was nicht das ist, was Du erwartest.

Ein Problem beim Beispiel ist sicher das unäre ``+`` — was sollte das denn bitte bewirken? Ist das einfach nur überflüssig, oder kann es sein, dass Du eigentlich den ``+=`` Operator schreiben wolltest.

Da auf der rechten Seite der Zuweisung nichts von der Laufvariablen abhängt, macht es auch nicht viel Sinn das selbe Ergebnis wieder und wieder zu berechnen.

Wobei die Schleife schon wieder vermuten lässt, das hier `numpy` nicht genutzt wird. Das scheint irgendwie ein immer wiederkehrendes Thema zu sein.
01detlef
User
Beiträge: 105
Registriert: Montag 10. Mai 2010, 21:59

Hallo,

Code: Alles auswählen

sv = [0,1,2,3,6,7]   #array
multi[i] = np.dot(vektor1[sv,2].T,vektor2[sv,1]) 
So nimmt er nur die Einträge, die auch in sv stehen...
Antworten