LabVIEWForum.de
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)

Seiten: 1 2 3


Ungültige Werte aus Array entfernen? - ThomasB - 13.03.2007 21:25

Hallo,

ich habe ein eindimensionales Array und möchte daraus bestimmte Werte (z.B. alle Werte <0) entfernen, so dass nur noch mein Array mit für mich gültigen Werten übrigbleibt. Im Moment habe ich dafür ein for-Schleife, die jedes Element des Arrays mit meiner Bedingung vergleicht und ist die Bedingung erfüllt, wird das gerade untersuchte Element in den TRUE-Rahmen meiner CASE-Struktur durchgereicht (innerhalb meines For-Rahmens). Aber was mach ich dann? Wie füge ich die 'gültigen' einzelwerte wieder zu einem neuen Array (innerhalb meines TRUE-Rahmens in der Case-Struktur) zusammen?

Oder kann man es ncoh ganz anders (einfacher) machen? Ich finde meinen Ansatz irgendwie schon viel zu umständlich.

Thomas


Ungültige Werte aus Array entfernen? - Achim - 13.03.2007 21:45

Hi,

der Ansatz ist schon mal nicht schlecht...schieb die gültigen Werte aus deinem TRUE-FAll mittels BuildArray in ein Schieberegister. Im FALSE-Fall reichst du das Ergebnis-Array einfach durch...

[attachment=5590]

Gruss
Achim

EDIT: Sehe grade, dass ich die ungültigen Werte ("NaN") in ein neues Array schiebe...ups!


Ungültige Werte aus Array entfernen? - Kvasir - 13.03.2007 21:54

Hi,

hab jetzt ein wenig herumprobiert, aber ohne For-Schleife bekomm ich es nicht hin *grml*. Bin mir sicher das geht irgendwie.
Naja. Die Lösung hier funktioniert auf jeden Fall auch.

Kann leider nur auf 7.1 speichern, deswegen ein Screenshot.
Im False Case ist einfach der Array des Schieberegisters durchverbunden.

Gruß

edit: Hehe. Sehr spaßig. Nicht nur mal wieder annähernd gleichzeitig. Diesmal auch noch mit einer identen LösungSmile


Ungültige Werte aus Array entfernen? - jg - 13.03.2007 22:03

<div align="left">Hallo,

hatte ebenfalls gleichzeitig mit Achim den gleichen Vorschlag auf meinem Desktop:

[attachment=5593]
[attachment=5594]

Ich bin übrigens der Meinung, dass es nicht mehr viel einfacher geht. Man könnte natürlich die Vergleichsoperation auf das ganze Array anwenden, aber intern wird da ja auch wieder eine For-Schleife daraus. Bringt also für den endgültigen Code nicht viel.

MfG, Jens
</div>


Ungültige Werte aus Array entfernen? - Kvasir - 13.03.2007 22:09

Das Problem was ich dann hatte war, den Boolschen Array nach dem Vergleichen dazu zu bringen die entsprechenden Indizes zu löschen.
Aber du hast natürlich recht. Bringt rechentechnisch sicher nicht mehr viel. Am ehesten noch optisch wasSmile


Ungültige Werte aus Array entfernen? - jg - 13.03.2007 22:16

<div align="left">Hallo, Kvasir,

jetzt hast du meinen Ehrgeiz geweckt:

[attachment=5595]

Aber wie gesagt, die ersten Lösungen sind bestimmt vom erzeugten Sourcecode einen Tick besser.

MfG, Jens
</div>


Ungültige Werte aus Array entfernen? - IchSelbst - 13.03.2007 23:28

Oder so ungefähr, um den Speichermanager etwas zu schonen.


Ungültige Werte aus Array entfernen? - Achim - 14.03.2007 07:08

Hi,

hier noch ne Variante...Vergleichoperation für das ganze Array und "um den Speichermanager zu entlasten" auch noch ein richtig vorinitialisiertes Ergebnis-Array...

[attachment=5598]

Diese Varianten sind aber alle ein bisschen aufgebläht...die erste funktioniert tadellos...wenn auch nicht mit der Suche nach "NaN"...weiss einer, warum das nicht gefunden werden kann?

Gruss
Achim


Ungültige Werte aus Array entfernen? - oenk - 14.03.2007 08:18

Moin Achim,

hatte einmal ein ähnliches Problem.
"NaN" gibt es nur bei "division by zero"....
Die "NULL" Abfrage aus C funktioniert so leider nicht

Gruss,
Christian


Ungültige Werte aus Array entfernen? - eg - 14.03.2007 08:33

<!--quoteo(post=24046:date=14.03.2007, 08:18:name=<<oenk>>)--><div class='quotetop'>ZITAT(<<oenk>> @ 14.03.2007, 08:18) [url=index.php?act=findpost&pid=24046][/url]</div><div class='quotemain'><!--quotec-->Moin Achim,

hatte einmal ein ähnliches Problem.
"NaN" gibt es nur bei "division by zero"....
Die "NULL" Abfrage aus C funktioniert so leider nicht

Gruss,
Christian[/quote]


NaN-Vergleich sollte damit funktionieren. Das VI ist in der Vergleichspalette.

Gruss, Eugen