Code covered by the BSD License  

Highlights from
SLIDEFUN (v4.0, sep 2008)

5.0

5.0 | 5 ratings Rate this file 27 Downloads (last 30 days) File Size: 3.46 KB File ID: #12550

SLIDEFUN (v4.0, sep 2008)

by

 

05 Oct 2006 (Updated )

apply function to a moving window over a vector

| Watch this File

File Information
Description

R = SLIDEFUN(FUN, W, V) evaluates the function FUN to a moving window of W consecutive elements of the vector V.

The function FUN is specified by a function handle or a function name and should return a scalar for a vector input. W specifies the size of the window and should be a positive integer. At the two edges of the vector less than W elements will be used. R will have the same size as V.

Effectively SLIDEFUN applies the function FUN to a moving window of consecutive elemens V(x0:(x0+W)) using FEVAL, and returns the result in R(x).

The window [x0:(x0+W)] is relative to the current point x in V. R = SLIDEFUN(FUN, W, V, WINDOWMODE) denotes the type of windowing being used: central (default), backward and forward.
 
R = SLIDEFUN(FUN,W,V,WINDOWMODE, P1,P2,...) provides for aditional parameters which are passed to the function FUN.
    
Example 1) Sliding max filter - return the maximum of every three consecutive elements:
  V = [1 2 3 9 4 2 1 1 5 6] ;
  R = slidefun(@max, 3, V)
  % -> [2 3 9 9 9 4 2 5 6 6]
  % So R(i) = max(R(i-1:i+1)) ;
  % and R(1) = max(V(1:2))

More examples are provided in the help section.

Acknowledgements

Movingstd(X,K,Windowmode) inspired this file.

This file inspired Sound Pressure Level Calculator.

MATLAB release MATLAB 7 (R14)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (8)
06 Nov 2014 Durga Lal Shrestha

It would be good if this function checks that input is vector. Otherwise for matrix it produces erroneous values.

05 May 2014 Chad Greene

Works perfectly; thanks for sharing.

21 Jun 2012 Jos (10584)

There is no stdev function in matlab. Do you mean STD?

slidefun(@std,25,Ngrid(4,:))

18 Jun 2012 Mar

I can't get this to work for stdev.
NgridSD = slidefun(@stdev,25,Ngrid(4,:));
??? Error using ==> feval
Undefined function or method 'stdev' for input arguments of type 'double'.

Any ideas? Thank you.

16 Nov 2010 Peter

Very helpful for technical analysis of stock data. Thank you good sir.

26 Sep 2008 Carlos Adrian Vargas Aguilera

I just found I haven't rate it. Well done, and waiting for annonymous function for inputs... :)

Carlos

02 Apr 2008 Dan Haeg

Very useful code for me, thanks for plugging it on CSSM so I could find it.

22 Jan 2007 John D'Errico

Nice, well written utility. It allows you to apply any general function on a moving window. Good help, examples, error checks, well done.

Contact us