Azzera filtri
Azzera filtri

how i average n values in array

1 visualizzazione (ultimi 30 giorni)
if i have data a and i want to mean or average every 10 values as 1:10, 2:11, 3:12 and as so on for length of data ?

Risposta accettata

Walter Roberson
Walter Roberson il 21 Ago 2016
mean(reshape(YourData, 10, []))
  8 Commenti
Andrei Bobrov
Andrei Bobrov il 21 Ago 2016
Hi Walter! Small correcting.
cs = cumsum(YourData(:));
moving_average = (cs(10:end) - [0;cs(1:end-10)])/10;
Walter Roberson
Walter Roberson il 21 Ago 2016
Thanks, Andrei

Accedi per commentare.

Più risposte (2)

Star Strider
Star Strider il 21 Ago 2016
‘But i need overlap between the values as 1:10 then from 2:11 and so on’
Use a moving average filter:
Heart_pulse_avg = filter(ones(1,10), 10, Heart_pulse);

Andrei Bobrov
Andrei Bobrov il 21 Ago 2016
a - your vector;
out = movsum(a,[0 9],'Endpoints','discard')/10;

Categorie

Scopri di più su Operators and Elementary Operations in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by