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!
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?
Ist es generell so, dass er je nach Größe der Zeilen, Spalten auswählt was als Indexierung genommen wird?
04.03.2016, 14:58 (Dieser Beitrag wurde zuletzt bearbeitet: 04.03.2016 15:01 von GerdW.)
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 Schlauch
04.03.2016, 15:28 (Dieser Beitrag wurde zuletzt bearbeitet: 04.03.2016 15:44 von GerdW.)
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…
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.
(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
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!
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)!
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:
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.