Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
19.07.2013, 11:01 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2013 11:02 von oe-ms1.)
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 ?
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
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...
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
Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
@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)
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...