Code covered by the BSD License

PTVlab (Particle Tracking Velocimetry - lab)

by

AntoineP (view profile)

A GUI based tool to preprocess, analyze, validate, postprocess, visualize and simulate PTV data.

nanmin.m
function [y,idx] = nanmin(a,dim,b)
% FORMAT: [Y,IDX] = NANMIN(A,DIM,[B])
%
%    Minimum ignoring NaNs
%
%    This function enhances the functionality of NANMIN as distributed in
%    the MATLAB Statistics Toolbox and is meant as a replacement (hence the
%    identical name).
%
%    If fact NANMIN simply rearranges the input arguments to MIN because
%
%    NANMIN(A,DIM) calculates the minimum of A along the dimension DIM of
%    the N-D array X. If DIM is omitted NANMIN calculates the minimum along
%    the first non-singleton dimension of X.
%
%    NANMIN(A,[],B) returns the minimum of the N-D arrays A and B.  A and
%    B must be of the same size.
%
%    Comparing two matrices in a particular dimension is not supported,
%    e.g. NANMIN(A,2,B) is invalid.
%
%    [Y,IDX] = NANMIN(X,DIM) returns the index to the minimum in IDX.
%
%    Similar replacements exist for NANMAX, NANMEAN, NANSTD, NANMEDIAN and
%    NANSUM which are all part of the NaN-suite.
%

% -------------------------------------------------------------------------
%    author:      Jan Glscher
%    affiliation: Neuroimage Nord, University of Hamburg, Germany
%    email:       glaescher@uke.uni-hamburg.de
%
%    \$Revision: 1.1 \$ \$Date: 2004/07/15 22:42:14 \$

if nargin < 1
error('Requires at least one input argument')
end

if nargin == 1
if nargout > 1
[y,idx] = min(a);
else
y = min(a);
end
elseif nargin == 2
if nargout > 1
[y,idx] = min(a,[],dim);
else
y = min(a,[],dim);
end
elseif nargin == 3
if ~isempty(dim)
error('Comparing two matrices along a particular dimension is not supported')
else
if nargout > 1
[y,idx] = min(a,b);
else
y = min(a,b);
end
end
elseif nargin > 3
error('Too many input arguments.')
end

% \$Id: nanmin.m,v 1.1 2004/07/15 22:42:14 glaescher Exp glaescher \$