meannan.m
author A.M. Thurnherr <athurnherr@yahoo.com>
Wed, 15 Apr 2015 09:55:34 +0000
changeset 16 54126cc9bb4a
parent 0 0a450563f904
permissions -rw-r--r--
IX_11beta set to Diana Cardoso for testing

function [m]=meannan(data);
% function [m]=meannan(data);
%
% calculates mean-values similar to built-in 'mean' 
% but takes NaN's into account
% by removing them and calculating the mean of the rest

% Gerd Krahmann, IfM Kiel, Mar 1993
% last change  4 Jun 1993

b=isnan(data);
a=sum(b(:));

if (a>0)

  [s1,s2]=size(data);

  if ( s1==1 ) + ( s2==1 )

    data=data(~b);
    if isempty(data)
      m=nan;
    else
      m=mean(data);
    end

  else

    m=zeros(1,s2);
    for i=1:s2

      m(i)=meannan(data(:,i));

    end

  end

elseif length(data)>0

  m=mean(data);

else
 
 m=NaN;

end