LabVIEWForum.de - Matrizenrechnung

LabVIEWForum.de

Normale Version: Matrizenrechnung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo.

Ziel ist es eingelesene Daten mit einer Matrix zu korregieren.

Ich bekommen 6 Kanäle einer Messreihe. Nun soll jeder der Vektoren mit einer konst. 6x6 Matrix multipliziert werden. Danach Habe ich wieder 6 Kanäle.

(Zur Info: Als Vektor bezeichne ich Die Werte der Kanäle zu einer bestimmten Zeit x transp( [K0,K1,...K5] )

Für normale plus-minus Rechnungen funktioniert das recht easy (Formel hin und fertig)
Aber mit einer Matrix krieg ich das nicht hin. Wie macht man sowas? Sollte doch ganz einfach sein ?

mfg matthias
Hallo,
du kannst doch Arrays einfach über die Grundfunktionen miteinander multiplizieren, oder habe ich die Aufgane falsch verstanden?Hmm


Gruß, Marko
Wenn eine Array multiplkation einer Matrix multiplikation entspricht könnte es gehen. Da Stellt sich mir nur dir Frage wo ist der Unterschied zwischen Array multiplikation und matrixmultiplikation
ich kann dir sagen, dass bei der Arraymultiplikation jedes Element mit dem "selben" in dem anderen Array multipliziert wird
Also nein, denn eine Matrizenmultiplikation ist nicht kommutativ. Ich will nicht mir Transponierten Arrays und schleifen arbeiten.

Das muss doch ganz einfach gehen. Das ist ja quasi eine Basisaufgabe

Aber danke für den Versuch
Hallo oe,

Zitat:Ich bekommen 6 Kanäle einer Messreihe. Nun soll jeder der Vektoren mit einer konst. 6x6 Matrix multipliziert werden. Danach Habe ich wieder 6 Kanäle.
In deinem Beispiel-VI erstellst du aber eine Matrix aus 8 Kanälen, die dann mit einer 6×6-Matrix multipliziert wird. Soll das so sein?
Beispieldaten in "Daten In" wären auch nicht schlecht gewesen...

Ich würde es eher so probieren:
[attachment=45488]
Danke Gerd,

Freund Adlerauge hat mal wider zugeschlagen. Es stimmt es sollten natürlich 6 Kanäle beim Eingang und auch sechs Kanäle beim Ausgang sein. (Hab mich nur verkopiert)
------------------
Ich fürchte ich hab mal zu kompliziert gedacht und mir deine Variante zu Herzen genommen.

Meine Lösung [siehe Bild] sollte funktionieren. Hab es aber noch nicht getestet
Es wundert mich trotzdem immer noch das du pro Kanal im ersten Beispiel ein Array (sic!) rauskriegst und im zweiten sogar ein 2D Array (sic!) mit der Matrix multiplizierst. Das geht zwar vermutlich gut (denn nen Vektor ist ja nix anderes als ne Matrix mit nur einer Spalte), allerdings könnte die Matrix "verkehrt herum" ausgerichtet sein (dann bricht die Multiplikation zwar nicht mit Fehlermeldung ab da du mit ner Quadratischen Matrix multiplizierts - also sowohl ne einspaltige Zeilen als auch ne einzeilige Spaltenmatrix damit verträglich ist. Das Rechenergebnis wird dann allerdings natürlich falsch).

Was kommt denn da pro Kanal raus? Hab mit dem Datentyp noch nicht gearbeitet, aber wenn da jeweils ein Wert pro Kanal rauskommt, dann lies die am besten da einfach aus (erstes Array Element) und bau dir dann deinen Vektor da draus).

So wie du es jetzt hast musst du mindestens noch prüfen ob du das Array noch transponieren musst das sich da ergibt.

Gruß Kiesch
@Kiesch
Das liegt an dem tollen Element "von dynamischen Daten konvertieren"
Das Ding kann man einstellen. Ob man einen Kanal als Vektor, mehrer Kanäle als Matrix
(transponiert oder auch nicht) haben will, lässt sich konfigurieren.
Mit dieser Information und der Annahme, dass labview Matrizen richtig rechnet hat das funktioniert. Nach einer mit Testsinus beaufschlagten Virtuelle-Karte und anschließender Rechnung zufolge arbeite das Programm korrekt.

Vielen Dank für deine Sorge

Das tolle ist, durch die vorigen Posts hat sich mein Problem gelöst (siehe meinen letzen Post)
Hallo oe,

Zitat:Das Ding kann man einstellen. Ob man einen Kanal als Vektor, mehrer Kanäle als Matrix (transponiert oder auch nicht) haben will, lässt sich konfigurieren.
Klarstellung dazu: man kann zwar vorgeben, wie man die Daten nach der Konvertierung präsentiert haben will - aber ob die zu erzeugenden Daten vorher überhaupt im DDT enthalten waren, muss der Programmierer schon selbst wissen...
Referenz-URLs