File Exchange

image thumbnail

ndnanfilter.m

Filter/smoothing of multidimensional data with an specified window function, ignoring NaNs.

15 Downloads

Updated

View License

NDNANFILTER N-dimensional zero-phase digital filter, ignoring NaNs.
 
SHORT SYNTAX:
[Y,W] = ndnanfilter(X,HWIN,F);
 
SHORT INPUT:
X - Multidimensional data with/without NaNs.
HWIN - Window's name (N-D moving average by default: 'rectwin').
F - Vector specifying the semi-width of the window for each dimension.
SHORT OUTPUT:
Y - Filtered/smoothed X data (same size as X!) with zero phase shift.
W - N-dimensional window with central symmetry generated by a special subfunction called NDWIND.
 
SHORT DESCRIPTION:
This function applies a N-dimensional convolution of X with W, using the MATLAB's IMFILTER or CONVN function, ignoring/interpolating/filling NaNs.

By default, the edges are padded with the values of X at the borders with the PADARRAY MATLAB's function. When PADARRAY is not found, the program performs zero-padding.

SHORT NOTE:
* See the screenshot.

Comments and Ratings (8)

Chad Greene

Chad Greene (view profile)

Brilliant! This is a well-written function with excellent documentation. It is nearly as fast as imfilter. Thanks for sharing.

Peter Gaube

Nice and fast, versatile and seems to work. Kudos!

Phillip

Phillip (view profile)

Works great, wish they would implement NaN ignoring options like this in the stock Matlab filters. Good job!

Bill Horton

2Dimensional hamming! Incrdible!

Fred Duncan

Mat Lab

This is what FEx is all about! Thanks Carlos!

Updates

1.0

BSD License

1. Fixed small bug with vector input (force F=0 in the second dimension)
2. Small changes in the description above.

MATLAB Release
MATLAB 7.5 (R2007b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video