how i average n values in array

5 views (last 30 days)
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 ?

Accepted Answer

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

Sign in to comment.

More Answers (2)

Star Strider
Star Strider on 21 Aug 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 on 21 Aug 2016
a - your vector;
out = movsum(a,[0 9],'Endpoints','discard')/10;

Community Treasure Hunt

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

Start Hunting!