How to take the average every 5 data points?

25 views (last 30 days)
I have a matrix 'GoogleDateClose' that is 251 by 2. The first column is just 1-252 to give a number assigned to each value in column 2. In column 2 I have all the data points. I need to write a script to take the mean of every 5 data points and put the resulting values into another matrix so I am able to plot those values. I feel like I did a poor job of describing what I am trying to get so please let me know if I can clarify.
  2 Comments
Christopher Wallace
Christopher Wallace on 18 Sep 2018
Do you mean take every 5th value (5, 10, 15) and then take the mean or take values 1-5 and calculate the mean and then take values 6-10 and calculate the mean
Noah Wilson
Noah Wilson on 18 Sep 2018
Take values 1-5 and take the mean then take values 6-10 and take the mean and so on and so forth.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 18 Sep 2018
251 or 251 is not a multiple of 5. So here it is for 250:
data = [(1:252)', rand(252, 1)] % Create sample data
column2 = data(:, 2);
out = reshape(column2(1:250), [], 5)
means5 = mean(out, 2)
  4 Comments
chris pamp
chris pamp on 10 Sep 2022
Thank you for your answer. I want 500 elements to each block. To have leftovers is not a problem
Image Analyst
Image Analyst on 10 Sep 2022
Edited: Image Analyst on 10 Sep 2022
Did you try something obvious like a for loop?
counter = 1;
for k = 1 : 500 : length(yourVector)
k2 = min([k + 499, length(yourVector)]);
theMeans(counter) = mean(yourVector(k : k2));
counter = counter + 1;
end

Sign in to comment.

More Answers (0)

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!