LabVIEWForum.de - Array neu initialisieren

LabVIEWForum.de

Normale Version: Array neu initialisieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Moin, wie kann ich ein 1D Array mit wenig Aufwand neu initialisieren und dabei einige Elemente (dynamisch) verwerfen.

Gruß
kcccp
Hallo kcccp,

kannst du bitte kurz die gewünschte Funktionalität darlegen? Bei sovielen parallel und eng aneinander verlaufenden Drähten und verschachtelten Case-Strukturen kommt man ganz durcheinander...

Ich persönlich habe schon nach dem ClusterToArray und IndexArray (mitsamt unnötiger Indizes) resigniert. Warum nicht ein simples UnbundleByName, welches die gleichen Werte wesentlich übersichtlicher (da beschriftet) liefert? Warum in jeder Iteration neu indizieren, die Werte ändern sich doch nicht?
Hi GerdW, ich gebe dir Recht ist sehr schlecht programmiert.

Also zu der erwünschten Funktion, man habe ein 1DArray mit n-Elementen (0-200), nun sollen einige Elemente (20-Grupen) verworfen und die restlichen in einem anderen Array dargestellt werden. Mit den Kontrollkästchen in dem Cluster wird die Auswahl getroffen ob das Element verworfen oder dargestellt wird.

Gruß
kcccp
Also so was.

Gruß
kcccp
Schon wesentlich übersichtlicher. Warum nicht gleich so?

Jetzt würde ein ClusterToArray wieder sinnvoll sein, da man dann mit einer Schleife und einer Case-Struktur auskommen würde...
Es ist jetzt Übersichtlicher geworden, aber es Funktioniert noch nicht so wie erwünscht.
' schrieb:Es ist jetzt Übersichtlicher geworden, aber es Funktioniert noch nicht so wie erwünscht.
Das liegt daran, daß der Cluster nur ein einziges Mal am Anfang abgefragt wird. Der gehört in die Schleife:
[attachment=30497]
Lv86_img[attachment=30496]
NB: Was das alles mit "Array initialisieren" zu tun hat, erschließt sich mir nicht...
Hi, erstmal vielen dank für die Beispiele.
Leider stellte ich fest, dass die Ergebnisse von einander abweichen (siehe Anhang). In deinem Beispiel ist der Array-Index immer konstant 20 (unabhängig davon ob du vorhin schon etwas gelöscht hast oder nicht), sieht man schön an den beiden Arrays in dem Bsp. Mein Bsp. sieht zwar nicht so gut aus, liefert aber die erwünschte Funktionalität.

Nun hab ich das Problem, dass die Länge des Array (wie viele Elemente gelöscht werden sollen) nicht wie in dem Bsp. immer 20 sondern unterschiedlich groß ist (12,18,40), hat eine/r vielleicht eine Idee wie ich das Problem lösen kann?

Gruß
kcccp
Hallo kcccp,

Zitat:die Ergebnisse von einander abweichen
Das kommt daher, dass sich bei einem Array die Indizes verschieben, wenn du am Anfang schon etwas weggelöscht hast. Du müsstest am Ende mit dem Löschen anfangen! (Kannst ja mal mit Stift und Papier nachvollziehen: Wenn ich bei einem Array Element #0 lösche, verringert sich bei allen nachfolgenden Elementen der Index um 1: Element #1 wird zu #0, #10 zu #9...) Wenn du dann stur weiter Element #20 löschen willst, triffst du das falsche ZielSmile

Zitat:nicht ... immer 20 sondern unterschiedlich groß ist (12,18,40)
Dafür musst du nur alle Instanzen der Konstante 20 (die du ja ziemlich oft im BD verteilt hast, statt einen Draht zu verwenden), durch einen Draht ersetzen, der an ein entsprechendes Eingabe-Control angeschlossen ist...
Moin GerdW,

mit den Indizes hab ich zwar schon in dem Beitrag davor beschrieben (es war keine Frage, hab mich vielleicht unglücklich ausgedruckt), aber trotzdem vielen dank für dein Engagement.

Die erwünschte Funktionalität des VIs hab ich jetzt erreicht (siehe Anhang), nun wollte ich fragen ob ich es irgendwie vereinfachen kann?

Gruß
kcccp
Seiten: 1 2
Referenz-URLs