LabVIEWForum.de
Wert in einem Array suchen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Wert in einem Array suchen (/Thread-Wert-in-einem-Array-suchen)



Wert in einem Array suchen - Oli_N - 28.08.2007 13:31

Hallo zusammen!

Ich möchte aus einer Matrix (2 Spalten & viele Zeilen) die erste Spalte ausschneiden und anschliessend in dieser nach einem bestimmten Wert suchen. Die erste Spalte sieht wie folgt aus: -100, -99.9, -99.8, -99.7, usw.
Die Suche funktioniert leider nur bei Werten wie -100, -99.5, -99.0, -98.5, usw. Die Frage ist nun wieso?


Hier noch das Schema:
[attachment=8319]

P.S.:Wenn ich direkt in einem konstanten Array suche funktioniert es problemlos bei allen Werten!
Also so:
[attachment=8322]


Vielen Dank schon mal für eure Hilfe!

Gruss Oli


Wert in einem Array suchen - Achim - 28.08.2007 13:36

Bei welchen Werten funktioniert es beispielsweise NICHT?

Ich könnte mir vorstellen, dass das an der Genauigkeit liegt...DBL + SGL-Werte sollten besser mit >= bzw. <= gesucht werden...dazu müsstest du deine Suche halt ein wenig umbauen...Tipp: An die Vergleichsoperatoren kann man auch direkt Arrays anschließen!


Wert in einem Array suchen - eg - 28.08.2007 13:42

Die Antwort ist ziemlich einfach: das sind Fliesskommazahlen.

Mach mal eine numerische Konstante vom Typ Single. Dann Rechtsklick und dann Format&Precision. Stelle für die Anzeige viele Nachkommastellen ein. Du wirst sehen, dass z.B. aus einer 1.6 eine 1.600000023842 wird. Wie soll denn das SuchVI diese beide Zahlen vergleichen?

Möglich wäre z.B. eine Aufrundung & Vergleich. Da muss man aber was basteln.

eg


Wert in einem Array suchen - eg - 28.08.2007 13:46

Irgendwo in der LV Hilfe habe ich gelesen, dass man nie Fliesskommazahlen mit einem = vergleichen soll. Man nehme lieber >= oder <= . Dies gilt für alle Programmiersprachen.

eg


Wert in einem Array suchen - Oli_N - 28.08.2007 14:03

Vielen Dank für die schnelle Hilfe!

Das Problem war genau wie beschrieben, dass die Werte bei den hinteren Kommastellen nicht alle Null waren.

Ich habe es nun mit runden gelöst.
Da meine Werte höchstens eine Kommastelle haben, habe ich alle Werte zuerst mit 10 multipliziert und danach auf eine ganze Zahl gerundet.

[attachment=8323]


Danke nochmals an alle!

Gruss Oli


Wert in einem Array suchen - eg - 28.08.2007 14:07

Dais


Wert in einem Array suchen - Y-P - 28.08.2007 14:28

Also bei mir klappt es, aber ich habe Dir ein Bsp. gemacht, wie Du es probieren könntest.

Schau' Dir die untere Whileschleife dazu an.

Gruß Markus

EDIT: Mist da war ich am basteln, wurde unterbrochen und bin nun natürlich zu spät dran..... aber Du hast es echt gut gelöst. Wink


Wert in einem Array suchen - Oli_N - 28.08.2007 15:14

' schrieb:Also bei mir klappt es, aber ich habe Dir ein Bsp. gemacht, wie Du es probieren könntest.

Schau' Dir die untere Whileschleife dazu an.

Gruß Markus

EDIT: Mist da war ich am basteln, wurde unterbrochen und bin nun natürlich zu spät dran..... aber Du hast es echt gut gelöst. Wink

Hallo

leider kann ich dein Vi nich anschauen, da ich LabVIEW 7.1 habe. Aber ich habs ja nun wie gezeigt gelöst.
Trotzdem vielen Dank für deine Mühe!!!

Gruss Oli