Be the first to rate this file! 19 Downloads (last 30 days) File Size: 2.47 KB File ID: #38573
image thumbnail

MINMAX: Generalized median-style filter

by

 

11 Oct 2012 (Updated )

Generalization of MIN, MAX, MEDIAN and extreme values filtering.

| Watch this File

File Information
Description

A little function that I imagined many years ago: a "median-style" generalized filter. Let's sorting all values of a vector X in ascending order then consider the normalized rank position N of elements:

- N = 0 (first value) corresponds to the minimum of X;
- N = 1 (last value) the maximum;
- N = 0.5 (middle) is the median value;
- So what is N = 0.9 ? Answer is: it's the maximum of X after excluding the 10% highest values.

The proposed function allows a simple generalization of MIN, MAX, MEDIAN and extreme filtering functions, reduced to a single parameter. A typical example of use is minmax(X,[0.01 0.99]) which returns minimum and maximum values of X(:) but excluding the 1% extreme values. This is particularily useful for automatic scaling of noisy data (see the screenshot example), compared to the use of MEAN and STD functions which can be biased by any high-magnitude values in X.

Default behavior of MINMAX is to return a vector of minimum and maximum values. So minmax(X) is an abreviation of minmax(X,[0 1]), and equivalent of [min(X(:)) max(X(:))]. Compared to the built-in functions MIN and MAX, it does not return a vector from matrix but returns a scalar by considering all elements of matrix X. Also, it removes any NaN values (returns NaN only if all X values are NaN).

Type 'doc minmax' for syntax, help and other examples.

MATLAB release MATLAB 6.5 (R13)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
18 Mar 2013

bug correction: now works also with X scalar.

Contact us