Code covered by the BSD License  

Highlights from
Moving Average Function

5.0 | 4 ratings Rate this file 283 Downloads (last 30 days) File Size: 5.5 KB File ID: #41859 Version: 1.0

Moving Average Function


Glen (view profile)


Calculates a moving average in an n-dimensional matrix in any dimension.

| Watch this File

File Information

result=movingmean(data,window,dim,option) computes a centered moving average of the data matrix "data" using a window size specified in "window" in "dim" dimension, using the algorithm specified in "option". Dim and option are optional inputs and will default to 1.

Dim and option optional inputs can be skipped altogether or can be replace with a []. For example movingmean(data,window) will give the same results as movingmean(data,window,1,1) or movingmean(data,window,[],1).

Input data matrix size and dimension is only limited by the maximum matrix size for you platform. Window must be an integer and should be odd. If window is even then it is rounded down to the next lower odd number.

Function computes the moving average incorporating a center point and (window-1)/2 elements before and after in the specified dimension. At the edges of the matrix the number of elements before or after are reduced so that the actual window size is less than the specified window.

The function is broken into two parts, a 1d-2d algorithm and a 3d+ algorithm. This was done to optimize solution speed, especially in smaller matrices (i.e. ~1000 x 1). Further, several different algorithms to the 1d-2d and 3d+ problem are provided as in certain cases the default algorithm is not the fastest. This typically happens when the matrix is very wide (i.e. 100 x 100000 or 10 x 1000 x 1000) and the moving average is being computed in the shorter dimension. The size where the default algorithm is slower will depend on the computer.


This file inspired Downsample Ts.

Required Products MATLAB
MATLAB release MATLAB 7.8 (R2009a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (4)
07 Sep 2015 Radim

Radim (view profile)

Nice and simple. Thank you.

28 Jan 2015 Alfredo Capobianchi

Good job! Very useful as Stephan Wolf said.

16 Dec 2014 Barbara

Barbara (view profile)

29 Dec 2013 Stephan Wolf

Just what i was lookin for. Centered moving average that is able to work in a plot over the whole width, without having to look for window size of the filter and moving the beginning. Great!

Contact us