02-15-2013 09:56 AM
Buongiorno a tutti!
Ho un problema nel trattare dati ricavati da un sistema di monitoraggio con Matlab.
Ho costruito due vettori: uno per il tempo e uno per i valori registrati dal dispositivo.
I due vettori sono correlati tra loro....se non ho registrazioni durante una giornata mi manca sia nel vettore tempo che in quello dei valori.
Dovrei riuscire a ricavare i valori giornalieri medi.
riporto per esempio i due vettori relativi a solo due mesi:
t4 =
0.7500 1.8500 2.9500 4.0500 5.1500 6.2500 7.3500 8.4500 9.5500 10.6500 11.7500 12.8500 13.9500 15.0500 16.1500 17.2500 18.3500 19.4500 20.5500 21.6500 22.7500 23.8500 24.9500 26.0500 27.1500 28.2500 29.3500 30.4500 31.5500 32.6500 33.7500 34.8500 35.9500 37.0500 38.1500 39.2500 40.3500 41.4500 42.5500 43.6500 44.7500 45.8500 46.9500 48.0500 49.1500 50.2500 51.3500 52.4500 53.5500 54.6500 55.7500 56.8500 57.9500 59.0500
E44 =
-0.0500 -0.0400 -0.0400 -0.0500 -0.0300 -0.0200 -0.0400 -0.0500 -0.0500 -0.0400 -0.0400 -0.0300 -0.0300 -0.0400 -0.0600 -0.0400 -0.0400 -0.0600 -0.0200 -0.0200 -0.0400 -0.0300 -0.0200 -0.0400 -0.0300 -0.0200 -0.0300 -0.0300 -0.0300 -0.0300 -0.0200 -0.0500 -0.0200 -0.0200 -0.0400 -0.0500 -0.0200 -0.0400 -0.0400 -0.0500 -0.0400 -0.0600 -0.0600 -0.0200 -0.0200 -0.0500 -0.0300 -0.0600 -0.0600 -0.0400 -0.0400 -0.0400 -0.0200 -0.0200 -0.0600 -0.0400 -0.0300 -0.0200 - -0.0100
-0.0100
Come si vede le misurazioni non si fisse nelle giornate.Avrei bisogno di ricavare un vettore che mi dice di quante celle è composto ogni gg(nel vettore tempo) per poter poi far fare la media di E4 relativa a quello spazio temporale.
Grazie!
02-18-2013 02:29 AM
Buongiorno Simonetta,
andando a passare l'array di cui vuole trovare il numero di elementi al subVI Array Size, avrà in uscita la dimensione dell'array.
Col subVI Add Array Elements, potrà eseguire la somma di tutti gli elementi di un array, che andrà poi divisa col numero ottenuto prima mediante Array Size.
Spero di esserti stato utile,
buona giornata!
02-18-2013 08:21 AM
Grazie mille per la risposta!!
Sinceramente non mi è molto chiaro.Non ho mai utilizzato subVI Add Array Elements,ho provato a fare una ricerca ma non mi è chiaro.
Non riesco costruendo un ciclo ad ottenere la lunghezza di ogni gg nel vettore tempo?
Grazie ancora
Buona giornata
02-18-2013 08:24 AM
Ciao Simonetta,
collegando un array al subVI Add Array Elements questo ti farà la somma di tutti gli elementi che fanno parte dell'array stesso.
Per quanto riguarda la lunghezza di ogni giorni nel vettore tempo, se ho capito bene, la trovi dalla dimensione dell'array del tempo, giusto?
..magari non ho capito bene io il significato dei due vettori...
02-18-2013 08:49 AM
ti faccio un esempio:
t=(0.002 0.004.0.006.0.008.0.01 1 1.002 1.01 2)
a=(0.05 0.06 0.03 0.04 0.03 0.02 0.04 0.06 0.06)
nellìesempio sono riportate le registrazioni relative a due giorni.Io dobvrei avere una registrazione ogni 30 minuti(1gg/48=0,021) ma quasi mai è cosi.
Il mio obiettivo è andare a fare la media giornaliera di a.Per fare questo devo conoscere la lunghezza di ogni giorno all'interno del vettore t.
In questo caso io avrei che il primo giorno sarebbe t1=5...quindi per avere il valore giornaliero medio di a devo fare la media sui primi 5 valori del vettore a.
Siccome questi due vettori sono relativi a più anni quindi molto numerosi dovrei riuscire a costruire un ciclo che mi automatizza questa procedura.
Grazie mille per l'aiuto e l'interessamento.
02-18-2013 08:55 AM
Ok, quindi non hai un vettore al giorno, ma tutti i dati di più giorni sono riportati nello stesso vettore, giusto?
In questo caso come fai a capire quando finisce un giorno? E' segnalato in qualche modo in uno dei due array?
02-19-2013 02:16 AM
Buongiorno!capisco quando finisce un giorno perchè l'unità di misura del tempo è proprio il giorno,quindi quando leggo 1 vuol dire che sono al gg successivo e così via con 2 ecc fino a 365.Cmq ieri sera dovrei essere riuscita a risolvere il problema facendo dei cicli ed utilizzando il comando find.
Davvero grazie mille per il tuo aiuto e per l'interessamento.....quando non si riescono a risolvere le cose con matlab è veramente deprimente.
Buona giornata!!
Simonetta
02-19-2013 02:41 AM
Diciamo che Labview è un po' più immediato e veloce da usare! 😉
Ciaociao!
02-19-2013 03:45 AM
Eh non lo conosco....e cmq sono obbligata ad utilizzare Matlab quindi devo per forza sbatterci la testa.
Per caso sai come posso fare a dirgli che se in un vettore ci sono degli zero al posto di quelli vorrei uno spazio vuoto???se gli do [ ] mi da errore!!
Grazie ancora!
02-19-2013 07:04 AM
..io conosco LabVIEW, Matlab non lo uso...
Prova a scaricarti la versione di prova di LV, così puoi valutare tu le differenze!
🙂