Code covered by the BSD License

### Highlights from Moving averages / Moving median etc

3.88235

3.9 | 17 ratings Rate this file 122 Downloads (last 30 days) File Size: 1.66 KB File ID: #8251

# Moving averages / Moving median etc

09 Aug 2005 (Updated )

Calculates moving averages (or median/fun) of a timeseries.

File Information
Description

MOVING will compute moving averages of order n (best taken as odd)

Usage: y=moving(x,n[,fun])
where x is the input vector (or matrix) to be smoothed.
m is number of points to average over (best odd, but even works)
y is output vector of same length as x
fun (optional) is a custom function rather than moving averages

Note:if x is a matrix then the smoothing will be done 'vertically'.

Example:

x=randn(300,1);
plot(x,'g.');
hold on;
plot(moving(x,7),'k');
plot(moving(x,7,'median'),'r');
plot(moving(x,7,@(x)max(x)),'b');
legend('x','7pt moving mean','7pt moving median','7pt moving max','location','best')

Acknowledgements
MATLAB release MATLAB 7 (R14)
10 Oct 2013

Works perfectly. Thank You!

03 Oct 2013
03 Aug 2013

Works great.

24 Apr 2013
25 Jan 2013

super

25 Jan 2013

thanks. It works very well. super.

09 Oct 2012

Works genial, thank you for sharing!!

06 Oct 2012

Slow!
At first, tests show that this function is faster than Matlab's "tsmovavg" function. But when you look at the result of this function, the output series needs to be moved by "floor( m /2 )". When this is taken into consideration, the entire function becomes much slower than Matlab's default function.

In addition, Matlab's tsmovavg function also takes the averages of multiple series simultaneously (matrices of m series X N data points)

The above was tested for "simple" moving averages.

18 Jun 2012

This works great! It turns out I also need standard deviation's for the averages. Is it possible to easily modify your code to include this? or do you have any recommendations? Thank you so much!

09 Jun 2012

Hi

I am new in using matlab. I am using it for trading rule such filter and moving average but I could not make it. does anyone have them already programmed in matlab.

thanks

14 Feb 2012
14 Feb 2012

Works great, thanks so much for posting!

02 Nov 2011

Works well, thanks.

13 May 2010

Better than Matlab's moving average function, simple and does the trick

22 Jul 2009
27 Jul 2008

works great and is very fast. thanks

07 Jul 2008

Hi. I've updated the script to make it much more flexible. You can now easily calculate things like the moving 90th percentile.

For people with errors: i would appreciate if you email me your problems directly so that i can improve the code.

21 Feb 2007

(Sorry - error reported is as follows:)

??? Subscript indices must either be real positive integers or logicals.

21 Feb 2007

Error in ==> moving at 27
y=y([zeros(1,m2)+m2+1,(m2+1):(n-n2),zeros(1,n2)+(n-n2)],:);

31 Aug 2006

not work

21 Jun 2006

The script is excellent for wave data smoothing

01 Mar 2006

Just delete it then. I'll still use it myself.

22 Feb 2006

not work

06 Oct 2005

moving can handle multiple columns at once which smooth can not. Smooth always uses an odd size window, even if you ask for an even sized one. They also handle edges a little differently. With moving.m it is very easy to spot where the edge is affecting the average.

So, i think smooth does not make moving obsolete.

03 Oct 2005

use Matlabs smooth function