Ungültige Werte aus Array entfernen? - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Ungültige Werte aus Array entfernen? (/Thread-Ungueltige-Werte-aus-Array-entfernen) |
Ungültige Werte aus Array entfernen? - IchSelbst - 14.03.2007 19:08 Und eine ohne Schleife - wenn schon, dann auch so - ist mir auch noch eingefallen. Ungültige Werte aus Array entfernen? - Kvasir - 14.03.2007 19:21 Bin schwer beindruckt IchSelbst. Sehr schöne Lösungen. Eugens Lösung ist zwar auch elegant, aber da stört mich doch der Umweg über die Strings. Naja ich bin ja nichtmal soweit gekommen Ungültige Werte aus Array entfernen? - Lucki - 14.03.2007 20:35 ' schrieb:Hi, hier noch ne Variante...Vergleichoperation für das ganze Array und "um den Speichermanager zu entlasten" auch noch ein richtig vorinitialisiertes Ergebnis-Array...Die Ersetzen-Funktion wird auch von NI für solche Operationen empfohlen, bei mehreren Tausend Elementen funktioniert das drastisch schneller als wenn dem Array immer neue Elemente angehängt werden. Deine aufwendige Berechnung der Arraygröße vor der Schleife ist allerdings unnötig. Besser ist, das Schieberegister erst mal auf die maximal mögliche Größe zu initialisieren und nach Ausführung der Operation den Unsinn enthaltenen Rest des Array abzuschneiden. Da es egal ist, was in dem vorinitialisierten Array drin ist (es wird sowieso alles überschrieben), habe ich zur Initialisierung einfach den Ursprungs-Array benutzt. Diese Variante dürfte wohl von allen Lösungsmöglichkeiten die schnellste sein. [attachment=5630] Ungültige Werte aus Array entfernen? - Y-P - 14.03.2007 20:42 Das ist echt eine gute Idee und ich war so frei, sie zu erweitern, so dass wirklich nur die größeren Werte und nur die kleineren Werte in den beiden Arrays übrig bleiben und nicht der Vergleichswert. Gruß Markus ' schrieb:Und eine ohne Schleife - wenn schon, dann auch so - ist mir auch noch eingefallen. Ungültige Werte aus Array entfernen? - Lucki - 14.03.2007 20:45 ' schrieb:Meine Lösung funktioniert auch, sogar ohne For-Schleife !!!In Deinem VI steckt noch ein kleines Fehlerchen, aber trotzdem: So etwa könnte es ohne Schleife tatsächlich funktionieren! Hier ein falsches Ergebnis bei mehreren Funden: [attachment=5634] Ungültige Werte aus Array entfernen? - IchSelbst - 14.03.2007 21:35 ' schrieb:In Deinem VI steckt noch ein kleines FehlerchenDas ist kein Fehler, was eq da gemacht, sondern eine Feature. Guckst du Parameter der Stringfunktion "Alles Ersetzen (F)". Ungültige Werte aus Array entfernen? - IchSelbst - 14.03.2007 21:49 ' schrieb:Das ist echt eine gute Idee und ich war so frei, sie zu erweitern, so dass wirklich nur die größeren Werte und nur die kleineren Werte in den beiden Arrays übrig bleiben und nicht der Vergleichswert.Auch hier wieder ein Feature. Das Hinzufügen dieses einen Wertes ist ja nur deswegen notwendig, weil die Index-Such-Funktion nur auf == überprüft. Wäre nämlich der Grenzwert, auf den geprüft werden soll, nicht vorhanden, würde dieser Algorithmus nicht funktionieren. Eigentlich sollte nun "Alles Größer" besser "Alle Größer Gleich" heißen - dann muss nur noch entweder am Ende von "Alles Kleiner" oder vom Anfang von "Alles Größer Gleich" der Vergleichwert wieder gelöscht werden (mit Array teilen) und dann ist nachher wie vorher die Anzahl der Werte identisch. Ungültige Werte aus Array entfernen? - eg - 14.03.2007 22:32 Also meine Lösung würde ich nie für solche Aufgabe verwenden. Es war für mich nur eine Herausforderung die Aufgabe irgendwie ohne Schleifen zu machen, denn jeder weiss, dass die Aufgabe an sich trivial ist. Ich denke aber, dass es ohne Schleife gar nicht geht. Das VI Suchen und Ersetzen hat bestimmt intern eine Schleife, noch schlimmer, da wird zeichenweise geschoben, was noch mehr Zeit, Speicher und CPU verbraucht. Wer könnte es denn ohne Schleife lösen? Der Vorschlag von IchSelbst ist sehr gut, erfüllt aber nicht die Voraussetzung. Man will ja filtern und nicht das Array aufteilen. Aber wirklich interessant. Eigentlich habe ich vielmehr in Richtung binäre Operatoren tendiert (siehe Bilder). War aber zu kompliziert. Wenn jemand möchte, kann es fortsetzen. Also ich wollte dann aus dem binären Array Zahlenarray erstellen und dann mit dem Eingabearray verUNDen, habe aber nicht gewusst, wie ich die Nulle wegkriege. Gruss, Eugen Ungültige Werte aus Array entfernen? - Kvasir - 14.03.2007 23:47 Genau in die Richtung hab ich Anfangs auch tendiert. Bin aber daran gescheitert. |