Strona 1 z 1

Max wartości z jedenj tablicy.

: 25 lut 2007 18:52
autor: Sargath
Witam!

Mam pytanie dot. tablic, otóż chodzi mi o to aby z jednej tablicy wyciągnąć kilka maksymalnych wartości. Dokładnie chciałbym aby w sytuacji, gdy znajdują sie dwie wartość w tablicy np [0,0,0.12,0.12,0] wskazał mi że maksymalna wartość to 0.12 w indeksach o nr 2 i 3.

Oczywiście w labview jest taka funkcja jak Max Array Max & Min lecz niestety nie wskazuje on w index array dwóch indeksów o wartościach 0.12. Wskazuje natomiast ostatnią maks. wartość lub pierwszą która sie pojawi w tablicy.

Dlaczego takie coś?. Z niektórych wyników działania programu pojawiają sie dwie te same wartości z różnych wybranych parametrów stąd mój problem.

Z góry dzięki za pomoc i pozdrawiam.

Re: Max wartości z jedenj tablicy.

: 25 lut 2007 20:08
autor: Mikrobi
Funkcji takiej nie ma, jednak można to zrobić następująco: [pętla While i 2 ShiftRegistery] 1. Wprowadzić tablicę przez Shift Register1 do pętli while 2. Zastosować funkcję Array Max & Min: - zwróci ona indeks i wartość - zapisać wartość do ShiftRegister2 3. Usunąć z tablicy pozycję na którą wskazuje indeks podany przez Array Max & Min 4. Ponownie zakręcić pętlą i sprawdzić wartość uzyskanego elementu maksymalnego
JEŚLi - wartość jest równa wartości z ShiftRegister2 : -> pkt.2 - w przeciwnym przypadku zatrzymujesz pętlę
Uzyskane indeksy elementów maksymalnych w każdej iteracji wypuszczasz przez tunel indeksowany :arrow: Tutaj trzeba pamiętać że akurat w pętli while trzeba włączyć indeksowanie tunelu (PKM >> Enable Indexing) :arrow: czywiście jeśli wracasz do pkt.2, w przeciwnym przypadku - zakończenie pętli - oznacza to że ostatni indeks już nie jest taki sam jak poprzednio.
Całość zamknięta w subVIju z opisem w pomocy kontekstowej zamyka problem.