LabVIEWForum.de
Matrix Zeilenweise verarbeiten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Matrix Zeilenweise verarbeiten (/Thread-Matrix-Zeilenweise-verarbeiten)



Matrix Zeilenweise verarbeiten - Dom0503 - 15.07.2011 07:45

Hallo Zusammen,

ich habe ein wohl ziemlich spezielles Problem bei dem ich momentan an die Grenzen meiner noch frischen Labview-Kentnisse stoße:

Und zwar würde ich gerne eine Matrix mit Parametern füllen können und diese Parameter Zeilenweise automatisiert abarbeiten. Die Matrix sieht folgendermaßen aus:


Spieldauer|Einschaltdauer|Schaltungen|Spannung
120s |50% |2 |5V
80s |90% |1 |20V

die Matrix wird nun Zeilenweise abgearbeitet. Es soll also

60s Spannung auf 5V
60s Spannung aus
60s Spannung auf 5V
60s Spannung aus
72s Spannung auf 20V
8s Spannung aus

geschaltet werden.

Bisher habe ich das Problem so gelöst, dass ich mir ein Array mit den entspechenden Daten schreibe welches dann mit entspechendem Zeitintervall Zyklisch bearbeitet wird. Das Array sieht dann folgendermaßen aus:

60
60
60
0
0
0
60
60
60
0
usw.

Das ganze erscheint mir recht aufwendig und im Endeffekt schwer zu handeln, da ich so realtiv schlecht in das Eigentliche geschehen eingreifen kann.

Ich hoffe ich konnte halbwegs verständlich machen was ich machen möchte und würde mich über Tipps der vorgehensweise dieses Problems sehr freuen.

LG Dom


RE: Matrix Spaltenweise verarbeiten - GerdW - 15.07.2011 07:53

Hallo Dom,

wenn du einen festen Parametersatz hast, würde ich dir ein Array of Cluster empfehlen - und den Cluster typdefinieren.
Dann kannst du einfach eine autoindexing-loop über dein Array laufen lassen und in der Schleife den Cluster "by name" auswerten...

P.S.: Bitte die korrekte LV-Terminologie verwenden: Matrix <> Array... Und genauer formulieren: nach deiner Beschreibung arbeitest du deine Beispiel-"Matrix" nämlich zeilen- statt spaltenweise ab!


RE: Matrix Spaltenweise verarbeiten - Dom0503 - 15.07.2011 08:05

Danke erstmal für die prombte Antwort. Werde mich mal daran versuchen und berichten.

Zitat:P.S.: Bitte die korrekte LV-Terminologie verwenden: Matrix <> Array...

Was meinst du damit genau? Ich schreibe momentan die Parameter in eine Matrix. Und schreibe anschliessend in ein Array.

Zitat: Und genauer formulieren: nach deiner Beschreibung arbeitest du deine Beispiel-"Matrix" nämlich zeilen- statt spaltenweise ab!

Da hast du natürlich vollkommen recht bring das ständig durcheinander Wink
Ist editiert.


RE: Matrix Zeilenweise verarbeiten - GerdW - 15.07.2011 08:17

Hallo Dom,

Zitat:schreibe momentan die Parameter in eine Matrix. Und schreibe anschliessend in ein Array.
??? Und wozu das ganze? Vielleicht besser gleich ein VI anhängen...

Ich würd's so machen:
[attachment=34679]


RE: Matrix Zeilenweise verarbeiten - Dom0503 - 15.07.2011 08:48

Anbei meine Vi´s...

Habt Erbarmen das sind meine ersten Gehversuche Wink

Edit: Richtiges MainVi ergänzt.


RE: Matrix Zeilenweise verarbeiten - GerdW - 15.07.2011 09:09

Hallo Dom,

- wozu die Matrix, wenn ein "normales" 2D-Array genauso funktioniert?
- Ich persönlich bevorzuge BuildArray anstelle von InsertIntoArray - es ist einfach schneller ersichtlich, ob Daten am Anfang oder Ende des Array hinzugefügt werden (siehe Main und Sub!)...
- Warum die Datenübergabe durch Referenzen anstatt gleich die Parameter durch Drähte weiterzureichen? Hier käme mein empfohlener Cluster in Gebrauch...

- Wieso plötzlich LV2010, wenn in deinem Profil nur LV2009 erwähnt ist?
Hallo Dom,

hier nochmal deine VIs mit einem Cluster zur Datenübergabe...
Allerdings noch ohne TypeDef und ohne benannte Clusterelemente, etwas Arbeit darfst du dir auch noch machen (Lerneffekt!) Smile

P.S.:
@Admin: Wieso werden 7z-Dateien kommentarlos weggefiltert?


RE: Matrix Zeilenweise verarbeiten - Dom0503 - 15.07.2011 09:24

Zitat:- wozu die Matrix, wenn ein "normales" 2D-Array genauso funktioniert?

Die Matrix benutze ich, da ich in einem ünergeordneten VI die Matrix aus einer Tabelle erzeuge.

Zitat:Ich persönlich bevorzuge BuildArray anstelle von InsertIntoArray - es ist einfach schneller ersichtlich, ob Daten am Anfang oder Ende des Array hinzugefügt werden (siehe Main und Sub!)...

Ja das ist natürlich viel übersichtlicher. War mir über die Funktion von Buildarray noch gar nicht so bewusst...

Zitat:- Warum die Datenübergabe durch Referenzen anstatt gleich die Parameter durch Drähte weiterzureichen?

Das kommt wohl von meinen automatischem erstellen eines SubVi´s Wink

Zitat:- Wieso plötzlich LV2010, wenn in deinem Profil nur LV2009 erwähnt ist?

Das war die Evaluation. Habe jetzt 2010... wird sofort geändert


Vielen Dank nochmal für die Mühen


RE: Matrix Zeilenweise verarbeiten - GerdW - 15.07.2011 09:29

Hallo Dom,

Zitat:Die Matrix benutze ich, da ich in einem ünergeordneten VI die Matrix aus einer Tabelle erzeuge.
Also, um das mal zusammenzufassen:
Du hast eine Tabelle (gut!); wandelst die in eine Matrix um, um die Daten weiterzureichen; wandelst die Matrix in ein Array um, um die Daten zu verarbeiten. Richtig zusammengefasst?

Und warum nicht gleich die Tabelle weiterreichen? Oder wenigstens den Zwischenschritt mit der Matrix weglassen?

Zitat:das sind meiner ersten Gehversuche
Erbarmen hab ich ja. Aber trotzdem stupse ich dich gern auf die mMn komplizierten/unnötigen Konstrukte hin. Und als Anfänger gleich mit Referenzen um sich zu schmeißen ist vielleicht auch nicht so der Hit... Smile


RE: Matrix Zeilenweise verarbeiten - Dom0503 - 15.07.2011 10:07

Zitat:Aber trotzdem stupse ich dich gern auf die mMn komplizierten/unnötigen Konstrukte hin.

Dafür bin ich auch sehr dankbar! Ich lass mich gerne eines bessesern belehren wenn ichs selber nicht besser weiß.

Zitat:Und warum nicht gleich die Tabelle weiterreichen? Oder wenigstens den Zwischenschritt mit der Matrix weglassen?

Das habe ich bisher mit der Datenkonvertierung nicht geschafft. Werde das wohl am Wochenende mal versuchen + die Hausaufgaben die du mir zusätzlich aufgegeben hast Wink