average of the past 12 observations without a loop
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 NaNs 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!