LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Kann man ein Array rückwärts durchsuchen?

Guten Tag,

 

kann man ein Array in LV 8.6 ab einem Startindex rückwärts z.B. nach dem nächsten True durchsuchen und den Index ausgeben? Ich bräuchte diesen Index um den entsprechenden Wert eines weiteren Arrays auszugenben.

 

 

Thx.

 

Martin

 

0 Kudos
Message 1 of 12
(4,307 Views)
Klar, du kannst dein Array umkehren (reverce) und dann durchsuchen (Search 1D Array).
0 Kudos
Message 2 of 12
(4,299 Views)

Hallo,

 

so habe ich mir das auch gedacht doch es kommt leider immer der Index -1 raus und das kann doch nicht sein, wenn nur die ersten 4 Elemente True sein können, da ich ja alle Elemente zuvor auf False initialisiert habe?

 

Martin

 

 

0 Kudos
Message 3 of 12
(4,291 Views)

Also bei mir klappt es gut. In diesem Beispiel bekomme ich Index 3 raus.

 

 

Message Edited by Eugen Graf on 12-15-2008 06:32 AM
0 Kudos
Message 4 of 12
(4,289 Views)

Hallo,

 

jetzt kommt nicht mehr -1 raus. Es kommt 196 raus. Laut meiner Meinung müsste doch 3 raus kommen. Er ist aktuell im 4 ( hier im Screenshot leider einmal zuviel ausgeführt steht i=5) und ist fals der index davor bei dem das Element true ist ist das 3 Element und das soll er nehmen und nicht 196. Ich möchte in dem Case2 den letzten Index des Elementes, wo er vor dem aktuellen true war.

Liegt das an der Schleife, Sequenz oder so?

 

Hier noch mein Screenshot vom case2

 

Martin

0 Kudos
Message 5 of 12
(4,276 Views)

You get -1 if all elements are FALSE.

 

If the index is 196, your array must be at least this big. Unfortunately, there is no way to tell from your picture what's going on. Can you attach the actual VI instead? What is the size of the array when you initialize it on the left?

 

Don't you also want to reverse the orange array (or do some math on the found index) to get the matching element?

 

Why do you have multiple instances of the same local variables ("upper", "less")? One of each is probably enough, you can always branch the wire. Where is the terminal?

Message 6 of 12
(4,271 Views)

Hallo,

 

I want do some math on the found index. Now here is also my vi instead. I want the index to geht the element in the orange array. The values are amplitudevalues and I' now programming a iteration to find the least Signal, on that my IR-Receiver can receive a sigsignal with 5 % Biterrorrate.

 

Martin

0 Kudos
Message 7 of 12
(4,268 Views)

Hallo

 

ist es auch möglich ein Array nach dem nächst kleineren als den gerade ausgegebenen Wert zu durchsuchen?

 

Martin

0 Kudos
Message 8 of 12
(4,249 Views)

Hallo Martin,

kann dein Projekt im Moment leider nicht öffnen, aber orange klingt nach einem "double" Array. Ich denke nicht das du in einem Array aus dbl Werten mit Index Array das bekommst was du suchst. Du kannst dein Array aber an ein "kleiner als" anschließen und mit dem Wert vergleichen. Das Resultat ist dann ein boolesches Array. In dem kannst du dann nach dem Ersten true oder was du brauchst suchen.

 

Mike

Message Edited by MikeS81 on 12-15-2008 04:03 PM
Message 9 of 12
(4,238 Views)

Hallo Mike,

 

es kann schon sein, dass ich nicht das bekomme was ich will. Ich möchte eigentlich nur immer den kleinsten Amplituden Wert herausbekommen, bei dem ich noch 95% Pulse mit einem vishay IR-Reciever empfangen kann. Ich dachte mir ich muss dazu die Amplitudenwerte speichern und prüfen ob die Pulse mehr oder weniger als 95 % der gesendeten sind. Ich wollte mit dem index array den nächst kleineren Wert als den aktuellen, sofern die Pulse zu groß sind und in den Fall zwei gesprungen wird. Dann will ich eigentlich das Arithmetische Mittel aus der aktuellen ( zu großen Amplitude) und der nächsten davor zu kleinen Amplitude um mich dem Wert zu nähern. Jetzt kann es sein, dass die Werte gleich sind und dann komme ich ja nicht mehr weiter, denn das arithmetische Mittel ist ja dann genau der aktuelle Amplitudenwert. Ich müsste also wissen, wie ein Array stänid überprüft wird und der nächst kleinere Amplitudenwert gefunden werden kann und für die Rechnung eingesetzt werden kann. Es ist im Fall zwei aber immer die Vorrausetzung das die aktuelle Amplitude zu hoch ist. In anderen Rahmen muss das dann ähnlich sein, wenn die Pulse zu klein sind. Hier muss die nächst größere Amplitude genommen werden. Gibt es in LV die Möglichkeit Arrayelemente mit einem aktuellen Wert zu vergleichen und den Elementwert in eine Rechnung für das Mittel einzubauen?

 

vielen Dank!

 

Martin

0 Kudos
Message 10 of 12
(4,235 Views)