Function for Calculating Moving sum
1 view (last 30 days)
Show older comments
Is there any function to calculate moving sum of a vector? I use "smooth" for calculating the moving average of a vector
1 Comment
F.
on 16 Jul 2012
I'm sorry but I don't understand "moving sum of a vector" ... Could you explain it and give a little exemple ? thanks
Accepted Answer
Image Analyst
on 16 Jul 2012
Edited: Image Analyst
on 16 Jul 2012
For a "moving" sum - the sum in a window - you can use conv(), or conv2() in two dimensions:
windowWidth = 15; % or whatever.
movingSum = conv(oneDsignal, ones(1, windowWidth));
for the moving average:
windowWidth = 15; % or whatever.
movingAverage = conv(oneDsignal, ones(1, windowWidth) / windowWidth);
4 Comments
Image Analyst
on 12 Oct 2017
Why wouldn't it? If you replace each element with the average of elements around it, which is what conv() can do, then that's the moving average.
More Answers (1)
Jonathan Sullivan
on 16 Jul 2012
help filter
doc filter
Example: Take a 10 element moving average.
x = rand(1e3,1);
n = 10;
x_moving_average = filter(ones(1,n)/n,1,x);
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!