04.03.2016, 14:43
Beitrag #1
|
Mistertwister
LVF-Neueinsteiger
Beiträge: 6
Registriert seit: Mar 2016
2015
-
DE
|
2D Array an for Schleife
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?
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.)
Beitrag #2
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: 2D Array an for Schleife
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:
(2 Anzeigeelemente für 1D-Arrays, die die selben Daten anzeigen…)
|
|
|
04.03.2016, 15:16
Beitrag #3
|
|
|
04.03.2016, 15:28
(Dieser Beitrag wurde zuletzt bearbeitet: 04.03.2016 15:44 von GerdW.)
Beitrag #4
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: 2D Array an for Schleife
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…
|
|
|
04.03.2016, 15:40
Beitrag #5
|
|
|
04.03.2016, 15:47
Beitrag #6
|
Mistertwister
LVF-Neueinsteiger
Beiträge: 6
Registriert seit: Mar 2016
2015
-
DE
|
RE: 2D Array an for Schleife
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:54
Beitrag #7
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: 2D Array an for Schleife
(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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
04.03.2016, 15:55
Beitrag #8
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: 2D Array an for Schleife
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)!
|
|
|
05.03.2016, 08:58
(Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2016 09:15 von Lucki.)
Beitrag #9
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: 2D Array an for Schleife
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.
|
|
|
| |