Moving Average using a for loop
10 次查看(过去 30 天)
显示 更早的评论
Hi, How can I compute the moving average using a for loop and without using convolution (i.e conv()) or the filter function (i.e filter())?
2 个评论
Jan
2014-4-22
If this is a homework question, and it does sound like it is one, please state this explicitly. Then show us, what you have tried so far and ask a specific question. We are not going to solve your homework.
Jan
2014-4-22
Did you try anything to solve this problem by your own? What about asking your favorite internet search engine for Matlab code for a moving average? You'd find many many solutions in the FileExchange.
回答(1 个)
Star Strider
2014-4-22
This seems to work:
data = rand(1,50); % Data
Dlen = length(data);
fltr = ones(1,5); % Filter
Flen = length(fltr);
datax = [data ones(1,Flen)*mean(data)]; % Pad ‘data’ vector with ones*mean(data)
mavg = [];
for k1 = 1:(Dlen)
mavg = [mavg (fltr * datax(k1:k1+Flen-1)')/Flen];
end
figure(1)
plot([1:Dlen], data)
hold on
plot([1:Dlen], mavg, '-r')
hold off
grid
1 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!