movingstd & movingstd2

A (fast) windowed std on a time series (or array)
12.1K Downloads
Updated 8 Apr 2016

View License

Occasionally I see a request for computation of a running, windowed standard deviation. This is easily accomplished using filter and the alternative formula for the standard deviation:
std = sqrt((sum(x.^2) - n*xbar.^2)/(n-1)).
movingstd allows you to specify forward, backward or central windows of any desired length. It patches the ends, shortening the window as necessary.
movingstd2 is now included, allowing a moving window standard deviation on 2-dimensional arrays. (I suppose I could easily enough implement movingstdn if that becomes of interest.)

Cite As

John D'Errico (2026). movingstd & movingstd2 (https://www.mathworks.com/matlabcentral/fileexchange/9428-movingstd-movingstd2), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R14SP1
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired: slidefun

Version Published Release Notes
1.4.0.0

movingstd2 included

1.3.0.0

strncmpi instead of strmatch for tests
Pre-centered and pre-scaled now

1.2.0.0

Fix the case of complex std results due to floating point arithmetic.

1.1.0.0

Documentation change to explicitly state the behavior at the end of the series.