LabVIEWForum.de
boolesches Array aus Matlab Skript verwenden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: boolesches Array aus Matlab Skript verwenden (/Thread-boolesches-Array-aus-Matlab-Skript-verwenden)



boolesches Array aus Matlab Skript verwenden - cyberfoxx - 25.09.2011 10:36

Hallo!
Ich habe ein Matlab Skript in welchem ich ein boolsches Array mit der Größe 1x38400 erstelle. Dieses Array möchte ich anschließend Byte-Weise (also 1. Byte die Werte 1-8, 2. Byte die Werte 9-16 usw.) über die Serielle Schnittstelle an einen µC senden. Hier haben sich allerdings nun zwei Probleme ergeben bei denen ich nicht recht weiß wie ich sie angehen soll.
1) Matlab unterscheidet (meines wissens nach) nicht zwischen den Datentypen. Somit weiß ich nicht ob es sich bereits um ein boolesches Array handelt (vl. erkennt MatLab ja dass nur 0 und 1 vorkommt) bzw. wie ich definieren kann dass es sich um bool'sche Werte handelt
2) mein nächstes Problem ist, dass beim Matlab Skript Boolean auch garnicht als Ausgangsdatentyp vorkommt. Und wenn ich als Ausgangsdatentyp Double auswähle weiß ich nicht wie ich das Double-Array in ein Bool-Array "typecasten" kann.

Ich wäre euch für ein paar Denkanstöße in diese Richtung sehr dankbar.
Danke im vorraus, Cyberfoxx


RE: boolesches Array aus Matlab Skript verwenden - jg - 25.09.2011 11:40

Wie wäre es, als Ausgabetyp U8 zu wählen (nicht Double).
Damit hast du ein Array of Byte, welches du direkt senden kannst.

Oder erstellt dein Matlab Skript wirklich nur "True" und "False" Werte, und du willst du noch jeweils acht Boolean in ein Byte zusammensetzen?

Gruß, Jens


RE: boolesches Array aus Matlab Skript verwenden - cyberfoxx - 25.09.2011 15:12

ich erstelle eine 1D-Matrix (1x38400) in der alles Nullen und Einsen stehen. Also z.B.:
data_matrix=[0,1,0,0,0,1,1,0,1,0,1,.....].
Somit sollte das erste Paket den Inhalt 01000110 bzw. das Zeichen 'F' sein


RE: boolesches Array aus Matlab Skript verwenden - Lucki - 25.09.2011 19:17

Meintest Du es etwa so?
[attachment=36117] oder [attachment=36118]


RE: boolesches Array aus Matlab Skript verwenden - cyberfoxx - 26.09.2011 09:25

ja genau so etwas meinte ich.
ich bin allerdings ziemlich neu in LV und habe die hälfte deiner verwendeten Symbole noch nie gesehen (*schäm*). Könntest du mir vl. kurz den Ablauf der Funktionen erklären? Oder die .vi's reinstellen damit ich bei den einzelnen Blöcken die Hilfe befragen kann?
Den einzigen unterschied den ich noch zu deinen Schnipseln habe ist, dass ich am eingang ein Double-Array von Matlab bekomme und kein U8-Array. Macht dies einen unterschied?


RE: boolesches Array aus Matlab Skript verwenden - Lucki - 26.09.2011 10:00

Mit dem DBL-Array das habe ich gelesen, deshalb hatte ich prophylaktisch eine Konvertierung zu U8 eingefügt. Danit müsste es funktionieren.
Was hier noch nicht berücksichtigt ist: Was hat zu geschehen, wenn die Anzahl der Elemente nicht ein Vielfaches von 8 ist? Mit Nullen auffüllen? Rechtsbündig oder linksbündig?
Das erste Beispiel ist etwas Tricksy, ob es deswegen schneller ist sei dahingestellt. Wenn Du Anfänger bist, dann konzentriere Dich auf das zweite Belspiel, das ist leichter zu verstehen.
Hier das VI. Wenn ich ein VI verstehen will, dann lege immer Sonden oder Anzeigen an alle mögliche Stellen. Mach das auch so.
[attachment=36121]


RE: boolesches Array aus Matlab Skript verwenden - cyberfoxx - 26.09.2011 14:00

vielen, vielen Dank. Werde mir heute abend mal an das verstehen und implementieren in mein Programm machen. da ich immer 76800 bit sind ist dies Glücklicherweise durch 8 dividierbar. Sollte ich auf weitere Probleme stoßen werde ich mich hier nochmals melden. Wenn nicht nochmals vielen Dank für deine/ eure Hilfe