12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- function y = nansem(x,dim)
- % FORMAT: Y = NANSEM(X,DIM)
- %
- % Standard error of the mean ignoring NaNs
- %
- % NANSTD(X,DIM) calculates the standard error of the mean along any
- % dimension of the N-D array X ignoring NaNs.
- %
- % If DIM is omitted NANSTD calculates the standard deviation along first
- % non-singleton dimension of X.
- %
- % Similar functions exist: NANMEAN, NANSTD, NANMEDIAN, NANMIN, NANMAX, and
- % NANSUM which are all part of the NaN-suite.
- % -------------------------------------------------------------------------
- % author: Jan Gläscher
- % affiliation: Neuroimage Nord, University of Hamburg, Germany
- % email: glaescher@uke.uni-hamburg.de
- %
- % $Revision: 1.1 $ $Date: 2004/07/22 09:02:27 $
- if isempty(x)
- y = NaN;
- return
- end
- if nargin < 2
- dim = min(find(size(x)~=1));
- if isempty(dim)
- dim = 1;
- end
- end
- % Find NaNs in x and nanmean(x)
- nans = isnan(x);
- count = size(x,dim) - sum(nans,dim);
- % Protect against a all NaNs in one dimension
- i = find(count==0);
- count(i) = 1;
- y = nanstd(x,dim)./sqrt(count);
- y(i) = i + NaN;
- % $Id: nansem.m,v 1.1 2004/07/22 09:02:27 glaescher Exp glaescher $
|