MATLAB Answers

0

average of the past 12 observations without a loop

Danielle Leblance さんによって質問されました 2017 年 3 月 5 日
最新アクティビティ Image Analyst
さんによって 編集されました 2017 年 3 月 5 日
I have vector A. How can i create vector B with the same size of vector A where starting row 13 in B I compute the average of the previous 12 observations in A. In other words
B(13,1)=mean(A(1:12,1)
B(14,1)= mean(A(2:13,1)
etc...
I tried a loop and it is taking forever. I feel it could be done easily without a loop.

  0 件のコメント

サインイン to comment.

タグ

1 件の回答

Image Analyst
回答者: Image Analyst
2017 年 3 月 5 日
編集済み: Image Analyst
2017 年 3 月 5 日
 採用された回答

Try this:
m = randi(9, 1, 100);
windowWidth = 12;
kernel = [zeros(1, windowWidth), ones(1, windowWidth-1)]/windowWidth
slidingMean = conv(m, kernel, 'valid')
or else use movmean() if you have a recent version of MATLAB r2016a or later.

  0 件のコメント

サインイン to comment.



Translated by