/Utilities/general/mynanmean.m

http://dotsx.googlecode.com/ · MATLAB · 1 lines · 1 code · 0 blank · 0 comment · 0 complexity · e259939db04c0bfe71c708829ec5bfbb MD5 · raw file

  1. function y = mynanmean(x) %NANMEAN Average or mean ignoring NaNs. % NANMEAN(X) returns the average treating NaNs as missing values. % For vectors, NANMEAN(X) is the mean value of the non-NaN % elements in X. For matrices, NANMEAN(X) is a row vector % containing the mean value of each column, ignoring NaNs. % % See also NANMEDIAN, NANSTD, NANMIN, NANMAX, NANSUM. % Copyright (c) 1993-98 by The MathWorks, Inc. % $Revision: 2.8 $ $Date: 1997/11/29 01:45:53 $ if isempty(x) % Check for empty input. y = NaN; return end % Replace NaNs with zeros. nans = isnan(x); i = find(nans); x(i) = zeros(size(i)); if min(size(x))==1, count = length(x)-sum(nans); else count = size(x,1)-sum(nans); end % Protect against a column of all NaNs i = find(count==0); count(i) = ones(size(i)); y = sum(x)./count; y(i) = i + NaN;