Signal Conditioning

cancel
Showing results for 
Search instead for 
Did you mean: 

matlab

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!

0 Kudos
Message 1 of 10
(6,826 Views)

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!

 

0 Kudos
Message 2 of 10
(6,805 Views)

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

0 Kudos
Message 3 of 10
(6,797 Views)

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...

 

 

0 Kudos
Message 4 of 10
(6,794 Views)

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.

0 Kudos
Message 5 of 10
(6,792 Views)

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?

0 Kudos
Message 6 of 10
(6,789 Views)

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

0 Kudos
Message 7 of 10
(6,780 Views)

Diciamo che Labview è un po' più immediato e veloce da usare! 😉

Ciaociao!

0 Kudos
Message 8 of 10
(6,776 Views)

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!

0 Kudos
Message 9 of 10
(6,774 Views)

..io conosco LabVIEW, Matlab non lo uso...

Prova a scaricarti la versione di prova di LV, così puoi valutare tu le differenze!

🙂

 

 

0 Kudos
Message 10 of 10
(6,770 Views)