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!
01.09.2015, 08:57 (Dieser Beitrag wurde zuletzt bearbeitet: 01.09.2015 08:58 von wrock.)
ich steh vor folgendem Problem, bei dem ich nicht weiß wie ich es in Matlab angehen soll.
Als "Raw"-Data stehen folgende Datsätze:
channelnummer:1-4, wert: (double)
Nun will ich die Werte anhand der channelnummer in verschiedene Arrays(im Sinne von c/c++ array) aufteilen und dann miteinander verknüpfen.
Array 1:(channel 1 werte)
23
12
42
23
Array2:(channel 2 werte)
232
12
45
23
z.b. AND Operation
1------
AND---Result
2------
wobei ich die array index untereinander verschieben kann
bspl: AND-Operation mit "unterem" Wert:
array index 1: 1,2,3,4,5,6
array index 2: 1,2,3,4,5,6
auch shiften soll gehen:
array index 1: 1,2,3,4,5,6
array index 2:---1,2,3,4,5,6
Das ganze soll möglichst schnell gehen. Deswegen also kein speichern in ein Spreadsheet und AND Operation anstelle +/-/<> operationen(bringt das was in labview).
soweit ich gesehen habe, verhalten sich arrays in labview anders als in c/c++?
Ich will ja auch ur das ergebnis angezeigt haben, und nicht das Array selbst.
Ich hoffe ich konnte es gut genug erklären.
Realisierungsvorschläge?
thy
Anzeige
01.09.2015, 09:06 (Dieser Beitrag wurde zuletzt bearbeitet: 01.09.2015 10:42 von jg.)
Zitat:bspl: AND-Operation mit "unterem" Wert:
array index 1: 1,2,3,4,5,6
array index 2: 1,2,3,4,5,6
Das deute ich mal als AND-Operation auf komplette Arrays: die AND-Funktion in LabVIEW ist polymorph und kann auch mit (Integer-)Arrays umgehen…
Zitat:auch shiften soll gehen:
array index 1: 1,2,3,4,5,6
array index 2:---1,2,3,4,5,6
Was bedeuten die 3 Minus-Zeichen?
Wenn du beliebige Arrayelemente verANDen willst, solltest du eine FOR-Loop nehmen und die zu verknüpfenden Indizes wie in deinem Beispiel autoindizierend abarbeiten…
Zitat:Das ganze soll möglichst schnell gehen.
Das ist eigentlich immer das Ziel…
Zitat:Deswegen also kein speichern in ein Spreadsheet
Zitat: und AND Operation anstelle +/-/<> operationen(bringt das was in labview).
Wieso jetzt AND statt (Integer-)Arithmetik? Das sind komplett unterschiedliche Operationen und ich verstehe nicht, wie du dann auf das gleiche Ergebnis kommen willst!?
bevor ich versuche zu verstehen welche Operationen Du vor hast, erstmal die Rückfrage ob ich Deine Werte richtig verstanden habe.....
Ich vermute es geht um folgendes:
4 Channel = 4 (Mess-)Werte = 4-Double-Zahlen = 4 64-Bit-Fließkommazahlen mit denen irgendwas gemacht werden soll.
Dazu wird aus jeder 64-Bit-Zahl ein Array von ??? erzeugt
Aus dem Beispiel wird nicht ganz klar, ob es sich dabei um 8 Arrayelemente mit jeweils 8-Bit unsigned-Integer handelt, von denen nur vier aufgeführt wurden.
Oder selbiges, von denen nur vier behalten und die anderen 4x8 Bit verworfen wurden.
Oder 4 Elemente mit 16-Bit-Zahlen, die zufälligerweise alle <255 sind.
(Oder geht es ursprünglich gar nicht um 64-Bit-Zahlen, sondern um 32-Bit-Zahlen die in Arrays mit vier 8-Bit-Zahlen zerlegt werden?)
Ist die Vermutung jeder Eingangswert wird zu einem Array erstmal richtig?
Wie ist dann die Umwandlung ins Array zu verstehen?
Und wenn das alles anders gemeint ist, wie dann?
Im nächsten Schritt sollen dann irgendwelche Operationen mit den Arrays durchgeführt werden. Sollen diese Operationen dann prinzipiell bitweise pro Array-Element durchgeführt werden? (Dann wäre die Umwandlung in ein Array gar nicht nötig gewesen, oder?)
Oder sollen einfach pro Element (oder pro Array?) ein False/True-Wert herauskommen?
Soll beim Shiften jedes Element für sich bitweise geshiftet werden? Oder soll einfach bei einem ganzen Array die Elemente komplett "verschoben" werden? Ich vermute letzteres. Aber dann wäre "shiften" eine etwas irreführende Bezeichnung.
Bei Deinem Beispiel verstehe ich nicht, was die Werte "1,2,3,4,5,6" mit den oberen Arrays zu tun haben. Zumal Du "oben" ja nur vier channel/Arrays mit vier Elementen hast.
Hmmm, Fragen über Fragen....
bis denne,
* mario *
02.09.2015, 16:46 (Dieser Beitrag wurde zuletzt bearbeitet: 03.09.2015 07:59 von Lucki.)
@Lucki: Da der Themenersteller das letzte Mal nach Erstellung von Gerds und meinem Beitrag eingeloggt war, sollte er wissen, dass seine Fragestellung nur zu führt. Wenn er sich nicht äußerst, dann kann man ihm leider nicht weiterhelfen.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!