LabVIEWForum.de
2D Array an for Schleife - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: 2D Array an for Schleife (/Thread-2D-Array-an-for-Schleife)



2D Array an for Schleife - Mistertwister - 04.03.2016 14:43

Hallo,

ich bin neu hier im Forum und bin dabei, mich mit den Basics in Labview vertraut zu machen. Nun habe ich aber Verständnisprobleme und hoffe ihr könnt mir dabei helfen.
Ich habe einen 2D Array (n Zeilen und m Spalten) der auf eine for Schleife geht mit Auto-Indexierung. Wenn ich mir nun den Array vor und nach der Indexierung anschaue, macht er mir einen 1D Array mit 1 Spalte und n Zeilen. Warum ist das so, müsste er nicht 1 Zeile und m Spalten ausgeben?Blink

Ist es generell so, dass er je nach Größe der Zeilen, Spalten auswählt was als Indexierung genommen wird?


RE: 2D Array an for Schleife - GerdW - 04.03.2016 14:58

Hallo Twister,

das schöne an LabVIEW ist: es ist egal, ob ein 1D-Array nun Spalten oder Zeilen hat! Es hat ja nur eine Dimension und stellt einen "Vektor" dar…

Wenn dich aber die Darstellung auf dem Frontpanel irritiert: einfach die Darstellung auf n Spalten, 1 Zeile ändern!

Demo:
[attachment=55424]
(2 Anzeigeelemente für 1D-Arrays, die die selben Daten anzeigen…)


RE: 2D Array an for Schleife - Mistertwister - 04.03.2016 15:16

Danke schon mal für die schnelle Antwort. Nur wie darf ich dann die zwei Beispiele sehen, die ich angefügt habe. Es macht doch schon einen Unterschied, wenn der Array jetzt Messwerte hat, ob ich die Zeilen oder die Spalten wähle. Oder steh ich echt so auf dem SchlauchHuh


RE: 2D Array an for Schleife - GerdW - 04.03.2016 15:28

Hallo Twister,

Zitat:Nur wie darf ich dann die zwei Beispiele sehen, die ich angefügt habe. Es macht doch schon einen Unterschied, wenn der Array jetzt Messwerte hat, ob ich die Zeilen oder die Spalten wähle.
Wo wählst du denn Spalten oder Zeilen? Nirgends!

Im linken Beispiel wird ein 1D-Array indiziert, es wird also Element für Element autoindiziert. (Tipp: bei 1D-Arrays NIE in Spalten/Zeilen denken, sondern einfach in "Elementen"!)
Im zweiten Beispiel wird ein 2D-Array indiziert. Hier wählt LabVIEW automatisch die Zeilen, da 2D-Arrays immer nach dem Schema "Zeilenindex, Spaltenindex" indiziert werden.
Im nicht vorhandenen dritten Beispiel mit einem 3D-Array würde LabVIEW "pages" indizieren, da ein 3D-Array aus den Koordinaten [Page, Row, Column] besteht…


RE: 2D Array an for Schleife - Freddy - 04.03.2016 15:40

Kleines Beispiel.


RE: 2D Array an for Schleife - Mistertwister - 04.03.2016 15:47

So verstehe ich es. Ich glaube das Problem bei mir ist, dass wenn ich das Sondenfenster offen habe, er mir den Array als 1 Spalte mit n Zeilen anzeigt, was wohl nicht bedeutet, dass die Werte auch so im Speicher abgelegt sind.


RE: 2D Array an for Schleife - jg - 04.03.2016 15:54

(04.03.2016 15:47 )Mistertwister schrieb:  So verstehe ich es. Ich glaube das Problem bei mir ist, dass wenn ich das Sondenfenster offen habe, er mir den Array als 1 Spalte mit n Zeilen anzeigt, was wohl nicht bedeutet, dass die Werte auch so im Speicher abgelegt sind.

Nochmal zur Klarstellung (Gerd hat es zwar schon geschrieben, aber du willst es noch nicht verstehen): ein 1D-Array hat im genaueren Sinn keine Zeilen oder Spalten. Es hat nur 1 Dimension! Du kannst im FP die Richtung der Anzeige auswählen (bei der Sonde wird senkrecht gewählt), das hat aber nicht mit Zeile/Spalte oder der Belegungsreihenfolge im Speicher zu tun.

Gruß, Jens


RE: 2D Array an for Schleife - GerdW - 04.03.2016 15:55

Hallo Twister,

Zitat:wenn ich das Sondenfenster offen habe, er mir den Array als 1 Spalte mit n Zeilen anzeigt, was wohl nicht bedeutet, dass die Werte auch so im Speicher abgelegt sind.
Nochmal: wo ist der Unterschied, wenn x Werte in einem 1D-Array (=Vektor) in einer Spalte oder Zeile dargestellt werden? Es gibt keinen, abgesehen von der Optik!
Die einzelnen Elemente liegen im Speicher genau gleich hintereinander, unabhängig von der Optik auf dem Frontpanel (oder im Sondenfenster)!


RE: 2D Array an for Schleife - Lucki - 05.03.2016 08:58

Daß eine For-Schleife mit Autoindexierung bei einem 2D-Array die Zeilen indexiert und nicht die Spalten, merke ich mir so: Wenn man mit einer verschachtelte For-Struktur, also dieser:
[attachment=55429]
alle Einzelelemente liest, dann geschieht das in der Reihenfolge, als ob man ein Buch liest. Also Zeile für Zeile. Damit ist klar, dass die erste, äußere Schleife die Zeilen indexiert. Und das tut sie natürlich auch ohne die innere Schleife.

In Labview gibt es bei Arrays zwar keine Unterscheidung von Zeilen- und Spaltenvektoren. Wohl aber gibt es die bei Matrizen. Konvertiert man eine Zeilen- oder Spaltenmattrix in ein Array, so ist das Resultat ein 2D-Array mit nur einer Zeile bzw. nur einer Spalte. Ein 2D-Array mit fehlender Ausdehnung in einer Dimension ist eigentlich kein echtes 2D-Array; man könnte das durchaus auch als Zeilen- oder Spaltenvektor bezeichnen bzw. so verwenden.
Ist aber nicht nötig. Denn wer Zeilen und Spalten unterscheiden muß, der wird Matrixen verwenden.


RE: 2D Array an for Schleife - IchSelbst - 05.03.2016 09:30

(05.03.2016 08:58 )Lucki schrieb:  als ob man ein Buch liest. Also Zeile für Zeile.
Danke, lieber Lucki, jetzt hab ich endlich dieses eine Problem weniger ...Guru1