LabVIEWForum.de
Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben (/Thread-Array-nach-Ueberschreitung-eines-Wertes-durchsuchen-und-Index-ausgeben)

Seiten: 1 2


Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - 123mibu - 23.02.2012 13:21

Hallo,

Ich habe ein 1D Array voll mit Werten. Ich will das Array jetzt von vorne durchsuchen und dann den Index wissen, bei dem das erste mal ein Wert größer als ein vorher definierter Wert ist.
Mit der "1D Array durchsuchen" Funktion hab ich schon gespielt, das Problem ist nur, dass ich ja nicht nach einem exakten Wert suchen will sondern nach einer Bedingung z.B. Element > 2. Hat jemand eine Idee, wie ich diese Bedingung einbauen könnte?
Danke


RE: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - Hook1986 - 23.02.2012 13:29

Hallo,

einfach hingehen und eine For-schleife nehmen. Dort baust du dann dein Array an den Eingang uns lässt die Autoindizierung zu. Dann hingehen und den Wert mit dem Sollwert vergleichen. Nun gehst du noch hin und machst einen Conditional-Stop in deine For-Schleife und machst dort deinen Vergleicher dran. Nun noch den Zählindex i aus deiner For-Schliefe rausgehen lassen et voila.

MfG Carsten

Edit: Hier mal ein kleines Beispiel.


RE: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - GerdW - 23.02.2012 13:36

Hallo 123,

du kannst auch
- "Schwellwert (1D-Array)" verwenden
- dein 1D-Array einem ">"-Vergleich unterziehen und das erste gesetzte Bit suchen
- eine Schleife, wie schon beschrieben, verwenden und Einzelwerte testen


RE: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - 123mibu - 23.02.2012 14:13

Danke!
Ich werde es mal mit der For Next Schleife versuchen.
Kann ich mit diesen Indizes rechnen? Ich will nämlich anschließend mit zwei ermittelten Indizes ein Teil Array aus einem anderen 1D Array rauschneiden. Am besten werde ich das mit der "Teil Array" Funktion machen, nur die Länge muss ich ja rechnerisch ermitteln heißt Index2 - Index1 = Länge (Rest). Direkt den Index des letzten Werts des Arrays einzugeben wird nicht gehen?!


RE: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - Hook1986 - 23.02.2012 14:28

Hallo 123,

wenn du ein Array hast, welches sortiert ist und dann den Schwellwert nutzt, um den Index zu bekommen, ab dem der Wert überschritten ist und dann alles darauf folgenden Werte haben willst kannst du auch einfach mit dem Baustein "Array Länge" die Gsamtlänge nehmen und mit "Teil Array" bei Index den ermittelten Index und Länge die Arraylänge angeben. Dann bekommst du auf jeden Fall alle Elemente, die nach dem Index kommen. Wenn du jedoch zwei Schwellwerte hast, zwischen denen sich die Werte des Arrays befinden sollen, so musst du die For-Schleife zweimal durchlaufen und die beiden Indizes ermitteln. Dann einfach bei "Teil Array" als Länge = größeren Index - kleineren Index und als Startindex den kleineren Wert benutzen.

MfG Carsten


RE: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - 123mibu - 23.02.2012 14:59

Danke Carsten, genau so hab ich das geplant. Ich hab jetzt zwei For Schleifen mit denen ich die zwei Indizes ermittel. Anschließend berechne ich die Länge und geh mit Index(klein) und Länge in die Funktion "Teil Array".
Kannst du mir vielleicht auch im Folgenden helfen: Jetzt soll das Teilarray nochmal durchlaufen werden und folgendes geschehen:

IF "Element" > x
ELSEIF "Element" < y
--> Fehlermeldung z.B. LED rot

Quasi ein Toleranzband. Wenn die Werte innerhalb liegen ist alles ok, wenn min einer außerhalb liegt, gibt es eine massive Fehlermeldung Smile


RE: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - GerdW - 23.02.2012 15:39

Hallo 123,

"In Range and Coerce" ist wie geschaffen dafür...


RE: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - 123mibu - 23.02.2012 15:43

Ein Traum! Danke Gerd.
Heißt also wieder eine FOR Schleife. Mein Blockdiagramm besteht nur noch aus FOR Schleifen. Naja hauptsache es macht was ich will Wink


RE: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - GerdW - 23.02.2012 15:46

Hallo 123,

Zitat:Heißt also wieder eine FOR Schleife.
InRange&Coerce kann auch mit Arrays umgehen - Polymorphie rules...

Zitat:Mein Blockdiagramm besteht nur noch aus FOR Schleifen.
Häng doch mal dein VI an, dann könnten wir drauf gucken...


RE: Array nach Überschreitung eines Wertes durchsuchen und Index ausgeben - 123mibu - 23.02.2012 16:00

Zitat:InRange&Coerce kann auch mit Arrays umgehen - Polymorphie rules...
Tatsächlich. Hätte ich mal den ganzen Text lesen sollen.

Zitat:Häng doch mal dein VI an, dann könnten wir drauf gucken...
Sorry das geht leider nicht. Das Programm läuft auf einem Prüfstand und da kann ichs nicht runterziehen. Außerdem denk ich, dass das unters Firmengeheimnis fällt.