Forum Italiano sui Prodotti NI

cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

Leggere un array e stampare solo i valori maggiori di un certa soglia

Solved!
Go to solution

Buonasera a tutti,

                            da poco ho iniziato a far pratica con Labview e iniziando a svolgere qualche esercizio mi sono imbattuto in un problema che non riesco a risolvere. In pratica, quello che provare a fare è leggere un array di numeri e stampare in uscita soltanto i valori che sono maggiori di una certa soglia.

Dopo che mi scorro l'array e faccio il confronto con il numero impostato come soglia non riesco ad escludere dalla stampa, per esempio in un nuovo array, i valori non compatibili. Ho provato sia ad usare la funzione SELECT e sia la struttura CASE, ma il problema è che devo sempre tenere in considerazione cosa succede quando il confronto mi da False.

Spero di aver esposto bene il problema, e resto in attesa di un aiutino da voi che sarete sicuramente più esperti di me.

Grazie. 

0 Kudos
Message 1 of 5
(1,653 Views)
Highlighted

LabVIEW Champion Do more with less code and in less time
0 Kudos
Message 2 of 5
(1,627 Views)
Solution
Accepted by topic author etr350
06-11-2017 02:11 AM

Ciao ert350,

ti allego un'immagine di come puoi agevolmente implementare un controllo condizionale all'interno di un ciclo for autoindicizzato (drag and drop sul tuo .vi ed il codice si inserisce in automatico).

array conditional indexing.png

 

Spero possa essere utile.

Message 3 of 5
(1,615 Views)
Solution
Accepted by topic author etr350
06-11-2017 02:16 AM

You probably want to place the "threshold" control before the loop.. This way it can be treated as a constant for the duration of the loop and the resulting code will have much higher performance.

 

 

 

(Note that older LabVIEW versions don't have conditional tunnels, so one would need to code around it)

 

If the control is inside the loop, the compiler assumes that the value can change at any time and needs to read the control with every iteration, which is significantly more work. And if it actually would change, the result would be unpredictable.


LabVIEW Champion Do more with less code and in less time
Message 4 of 5
(1,610 Views)

Grazie ragazzi, siete stati entrambi molto esaustivi. Ho risolto il mio problema, che come pensavo era una banalità, ma non essendo ferrato faccio un pò fatica su alcune cose.

0 Kudos
Message 5 of 5
(1,595 Views)