how i average n values in array

2 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;

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!