How do I make the movmean calculate the moving average at the start- and endpoints of an array but in conjunction to each other?

8 views (last 30 days)
Currently my sample program is as following
A = [0 2 4 1 3 5 7];
M = movmean(A,[2 1])
For example, I want to find the moving average for A(7). Instead of not having value for the kf, I want the kf to consider the value of A(1) to calculate the moving average. And the same for when I want to find the moving average of A(1), it should consider the value of A(6) and A(7).
Is it possible to do so? If it is, any idea on how to do it?
Thank you very much.

Accepted Answer

Scott MacKenzie
Scott MacKenzie on 16 Mar 2022
Edited: Scott MacKenzie on 16 Mar 2022
This seems to do the trick:
A = [0 2 4 1 3 5 7];
M = movmean(A,[2 1]);
M2 = movmean([A A A],[2 1]);
n = numel(A);
M2 = M2(n+1:n+n);
format shortg
[A; M; M2]
ans = 3×7
0 2 4 1 3 5 7 1 2 1.75 2.5 3.25 4 5 3.5 3.25 1.75 2.5 3.25 4 3.75

More Answers (0)

Categories

Find more on Multidimensional Arrays 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!