in data 06-08-2017 04:25 PM
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.
Risolto Andare alla soluzione.
in data 06-08-2017 11:28 PM
in data 06-09-2017 04:52 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).
Spero possa essere utile.
06-09-2017 09:21 AM - modificato 06-09-2017 09:22 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.
in data 06-11-2017 04:18 AM
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.