LabVIEWForum.de - Array durchsuchen, Array erstellen

LabVIEWForum.de

Normale Version: Array durchsuchen, Array erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Labview-Gemeinde.

Ich habe ein ziemlich simples Problem, verstehe aber im Moment leider nicht warum mein Vi nicht so funktioniert wie es gerne möchte.

Ich habe ein 3D-Array aus Zeilen,Spalten und Seiten.
Ich möchte nun jede Seite durchsuchen und prüfen ob sich in der nullten Spalte der jeweiligen Seite Werte größer 20 befinden.
Ist dies der Fall gilt die komplette Seite als OK und soll beibehalten werden. Ist dies nicht der Fall soll diese Seite verworfen werden.

Aus einem anfänglichen 3D Array mit z.B. 37 Seiten wird dann, wenn 30 Seiten OK sind ein neues 3D-Array mit den gültigen 30 Seiten.
An den Zeilen und Spaltenwerten der einzelnen Seiten soll nichts verändert werden solange die Bedingung erfüllt ist.

Leider funktioniert die Erstellung des neuen Arrays nicht. Vllt. könnt ihr mal einen kurzen Blick auf mein Vi werfen und mir einen Tipp geben.

Grüße Christopher
kommt so das Richtige raus?
Hallo Christopher,

der nicht vorhandene Umgang mit Schieberegisters mahnt die Absolvierung der Einsteigerkurse an Smile :
[attachment=40047]
Ich habe versucht, den Kommentar im BD umzusetzen...

Zitat:Leider funktioniert die Erstellung des neuen Arrays nicht.
Leider funktioniert auch das Beschreiben des Fehlers nicht...
AHH vielen Dank ihr beiden für die schnelle Antwort.

Das Schieberegister hat also gefehlt... Im Endeffekt habe ich also die erste Seite immer mit der neuen Seite überschrieben... ?!

Danke.
Bei größeren Arrays ist es übrigens immer schneller, wenn man den neuen Array mit der Funktion "Elemente ersetzten" erstellt, anstatt, mit dem leeren Array beginnend, immer neue Elemente anzuhängen.
Das sieht dann so aus:
[attachment=40053]
Hallo Zusammen,

ich hätte bezüglich der obigen Thematik noch einen Nachtrag.

Nachdem das neue 3D-Array mit den "guten" Daten erstellt wurde(Lösung von GerdW verwendet), möchte ich dieses erneut durchsuchen.
Die Bedingung ist wieder gleich wie zuvor (also Werte in der Nullten Spalte größer 20->TRUE), allerdings möchte ich nun mittels des Indexes auf den Wert in der ersten Spalte zugreifen.

Bild 1 soll das kurz verdeutlichen. Gelb markiert ist die erste wahre Bedingung im Array (nullte Spalte erstmals größer 20, nämlich 83,0666). Nun möchte ich auf den Wert in der ersten Spalte in der selben Zeile zugreifen (-60,0722).

Ziel ist es jetzt alle Werte in der ersten Spalte in ein neues Array zu speichern bis die Bedingung wieder FALSE wird, Bild 2.
Am Ende würde ich dann ein 2D-Array erwarten in dem die Zeilen die Seiten des ursprüglichen 3D-Arrays beschreiben und die Spalten die einzelnen Werte der ersten Spalte im Ursprungsarray.

Ich habe das Ganze im angehängten Array versucht nachzustellen, allerdings mit eher geringem Erfolg.
Ich vermute, dass die Bedingung "Wert größer 20" (True oder False) nicht bei jedem Durchlauf aus der For-Schleife heruasgeführt wird, sondern erst nach Beendigung dieser For-Schleife also nach 2541 Durchläufen (jedes Array ist so groß).
Habt ihr Tipps wie ich das anders realisieren kann ? Die zweite Case Bedingung einfach mit in die For-Schleife zu packen um die Bedingung bei jedem Durchlauf mitzubekommen habe ich schon versucht, allerdings auch mit mäßigem Erfolg...

Danke schonmal für eure Hilfe.

Grüße Christopher
Neuer Tag neues Glück.
Habe die Lösung mittlerweile gefunden.

Anbei das Vi, falls sich irgendwer mal eine ähnliche Fragen stellen sollte.
Referenz-URLs