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

6 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Scott MacKenzie
Scott MacKenzie il 16 Mar 2022
Modificato: Scott MacKenzie il 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

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by