LabVIEWForum.de - Arrays... immer wieder Arrays

LabVIEWForum.de

Normale Version: Arrays... immer wieder Arrays
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leuts'n'Members!

Immer wenn's um Arrays geht, könnt ich vorher schon weglaufen...
Index-Spalte-Zeile, Array-Operationen, Umformungen. Zick-Zack-Zuck.

Irgendwie wird es immer ein Try-and-Error Spiel bei mir. Fight

Aktuelles Beispiel:
Gehe mit einem 2D-Array, welches ich aus einem Text-File mit 2 Spalten geholt habe, direkt
auf den Autoindizierten-Tunnel einer For-Schleife. In der Schleife wende ich eine Operation
auf die erste Spalte an.

#1 - Da geht's schon mal los.. Läuft die Schleife mit der Zeilen- oder Spaltenanzahl.
Man weiss es net genau, also testen. Anzeigen lassen. Was auch immer. *Läuft wie gehofft*

#2 - In der Schleife dann kommt ein 1D-Array an. Gut, ist auch an der Verdrahtung erkenntlich.
Bei der Abarbeitung der Elemente sind Zeilen- und Spalten-Index aber offensichtlich vertauscht.
*Hier wird das 1D-Array offenbar transformiert*. Wird in etwa nachvollziehbar, wenn man
sich die Ablage der Elemente im Speicher vor Augen führt.

#3 - Das war noch eine recht leichte Herausforderung. Bei Verkettungen und anderen Operationen
auf mehrdimensionalen Arrays, steigt mein Vorstellungsvermögen inkl. Fantasie, wie bei LV die
Definitionen liegen könnten ganz aus..


Kann mir jemand eine gute Quelle empfehlen, Erläuterungen aus denen klar und strukturiert
hervorgeht, wie ich das Kapitel 'Arrays' unter LV in Zukunft sicherer bewältigen kann?



Danke und heute noch ein paar gelungene Verdrahrtungen!

nurso

Lv09_img2
Hallo nurso,

#1 In der Schleife erhälst du die 1D-Arrays zeilenweise. Umgekehrt beim Erzeugen eines 2D-Arrays werden 1D-Arrays auch zeilenweise zu 2D-Arrays autoindizierend zusammengefügt. Bei 3D-Arrays geht es dann mit der Seite/page los, dann Zeilen/rows, dann Spalten/columns…

#2 ??? Hmm Ich kann dir hier nicht folgen…
Du bekommst eine Zeile autoindiziert (siehe #1) und arbeitest dich durch deren Elemente, d.h. spaltenweise Abarbeitung…

#3 Grundregel: page/row/column…

Zitat:Erläuterungen aus denen klar und strukturiert hervorgeht, wie ich das Kapitel 'Arrays' unter LV in Zukunft sicherer bewältigen kann?
Man erstellt sich ein kleines Test-VI, in dem man die Array-Operation, die man vorhat, mit zwei Beispiel-Arrays durchführt.
Du willst ein 1D-Array an ein 2D-Array anhängen: Test-VI mit BuildArray erstellen und ausprobieren!
2D-Arrays verknüpfen? Test-VI und ausprobieren…
Grundregel #3 bedenken und man hat das irgendwann "drauf" verinnerlicht…
(14.08.2014 10:11 )GerdW schrieb: [ -> ]#3 Grundregel: page/row/column…
Und wenn du mal mehr als 3 Dimensionen beim Array erstellst, dann hast du etwas falsch gemacht... Wink

Gruß, Jens
(14.08.2014 10:11 )GerdW schrieb: [ -> ]
Zitat:Erläuterungen aus denen klar und strukturiert hervorgeht, wie ich das Kapitel 'Arrays' unter LV in Zukunft sicherer bewältigen kann?
Man erstellt sich ein kleines Test-VI, in dem man die Array-Operation, die man vorhat, mit zwei Beispiel-Arrays durchführt.
Du willst ein 1D-Array an ein 2D-Array anhängen: Test-VI mit BuildArray erstellen und ausprobieren!
2D-Arrays verknüpfen? Test-VI und ausprobieren…
Grundregel #3 bedenken und man hat das irgendwann "drauf" verinnerlicht…

Hallo Gerd,
habe folgendes verstanden - Du kennst keine gute Darstellung zu dieser Thematik.
Also weiter (selber) Try-and-Error.. begreifen wie es sich NI ausgedacht hat.... und dann irgendwann freuen!

Pony Zeitung2 Yahoo
Hallo nurso,

Zitat:begreifen wie es sich NI ausgedacht hat
Ich habe bisher keine großen Unterschiede im Vergleich zu anderen Programmiersprachen festgestellt.
Ein 2D-Array wird auch sonst in der Art von array[i,j] beschrieben und verarbeitet. LabVIEW autoindiziert erst i und dann j…
(14.08.2014 11:20 )nurso schrieb: [ -> ]
(14.08.2014 10:11 )GerdW schrieb: [ -> ]
Zitat:Erläuterungen aus denen klar und strukturiert hervorgeht, wie ich das Kapitel 'Arrays' unter LV in Zukunft sicherer bewältigen kann?
Man erstellt sich ein kleines Test-VI, in dem man die Array-Operation, die man vorhat, mit zwei Beispiel-Arrays durchführt.
Du willst ein 1D-Array an ein 2D-Array anhängen: Test-VI mit BuildArray erstellen und ausprobieren!
2D-Arrays verknüpfen? Test-VI und ausprobieren…
Grundregel #3 bedenken und man hat das irgendwann "drauf" verinnerlicht…

Hallo Gerd,
habe folgendes verstanden - Du kennst keine gute Darstellung zu dieser Thematik.
Also weiter (selber) Try-and-Error.. begreifen wie es sich NI ausgedacht hat.... und dann irgendwann freuen!

Arrays in LabVIEW sind grundsätzlich logisch und gut strukturiert implementiert, so auch alle Funktionen dazu. Du kannst Dir mit ein paar Grundregelen wie von Gerd erklärt alles sehr einfach ableiten. Selber hat das bei mir keinen Sinn weil ich solche Regelen zwar inhaltsgemäss lernen kann, aber dann im konkreten Fall doch jedesmal wieder zu zweifeln beginne ob es jetzt von innen nach aussen oder umgekehrt ist. Ein kleines TestVI ist so erstellt mit ein paar Mausklicks und hat sich in 20 Jahren LabVIEW Erfahrung oft genug bewährt. Vielleicht geht's Dir hier wie mir, aber ich käme nie auf den Gedanken zu behaupten dass die Array Implementation in LabVIEW nicht gut strukturiert ist, sondern nur dass ich scheinbar zu faul bin um mir so etwas in mein Gehirn zu stampfen.
Ich mache es auch jetzt noch wie Rolf mit schnellem Probieren. In grauer Vorzeit hatte ich mir aber auch mal eine Eselsbrücke ausgedacht. Vielleicht nützt das jemandem.
[attachment=50446]
Den Elementen in der Arraykonstanten habe ich im Beispiel Werte gegeben, die ihrem Index entsprechen, so wie er allgemein üblich ist. Man muß sich nun die Zahlen in der Indexanzeige waagrecht statt senkrecht untereiander vorstellen, dann hat man direkt den Elementindex. Also: zuerst Zeilenindex (senkrechter Index), dann Spaltenindex (waagrechter Index).
Und für den Indexanschluß an einer for-Schleife gilt: Es geht in der Indexanzeige ganz oben los, also mit dem Zeilenindex.

:offtopic:Das ist übrigens nicht das erste mal, dass ein LF-Anfänger mit einem Problem daherkommt, aber nicht sagt, helft mir, sondern erst mal Labview kritisiert. Das kennt man doch schon: So ist immer noch die einfachste Art, sich selbst indirekt als Computerversteher auszuweisen, kräftig auf Microsoft zu schimpfen.
Referenz-URLs