How to calculate moving average for data

22 views (last 30 days)
Ivan Mich
Ivan Mich on 22 Feb 2021
Commented: KALYAN ACHARJYA on 22 Feb 2021
How could I calculate moving average for specified data , having specific overllaping (For example I have a set of data, and I would like to compute moving average). How to make it?
Also I do noy understand how to use movmean(A,k)? What should I put in k value in this function?
Could you please help me?
  5 Comments
Ivan Mich
Ivan Mich on 22 Feb 2021
Nevermind about overlap. Could you please help me about calculating moving average?
Rik
Rik on 22 Feb 2021
What exactly is it you want to do? For each nth element of your vector you can specify which range of values should be averaged. As the documentation for movmean explains, k denotes how wide that window should be.

Sign in to comment.

Answers (1)

KALYAN ACHARJYA
KALYAN ACHARJYA on 22 Feb 2021
Edited: KALYAN ACHARJYA on 22 Feb 2021
Here One way: Using Loop (As the data is 1 D)
data=1:60 % Random data as per Attached sample
% Lets Decided the Segment size 5 Data Elements
% Move the window by 3 Elements (60% of 5, remaining 2 (40%) Overlap)
move_av=zeros(1,length(data)/3);
idx=1:3:length(data);
for i=1:length(idx)-4
move_av(i)=mean(data(idx(i):idx(i)+4));
end
move_av
Other related function to avoid the loop blockproc, I will respond as a comment once I do. Or you may get the respond from the expert members
  7 Comments
KALYAN ACHARJYA
KALYAN ACHARJYA on 22 Feb 2021
If you consider the moving window size is 1, then its simply average of individual data elements divided by 1. And the result will be same as data
>> data=1:10
data =
1 2 3 4 5 6 7 8 9 10
Here
>> movmean(data,1)
ans =
1 2 3 4 5 6 7 8 9 10
More:
movmean(data,k)
Here k represents the window size
Lets consider k is 3
Result
>> movmean(data,3)
ans =
1.5000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 9.5000

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!