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 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.
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:
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
Anzeige
12.06.2012, 07:33 (Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2012 07:34 von zich1011.)