19 views (last 30 days)

Show older comments

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?

Rik
on 22 Feb 2021

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

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

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

Start Hunting!