sum_nan.m

来自「Kriging插值matlab toolbox」· M 代码 · 共 40 行

M
40
字号
function    psum=sum_nan(A,k)
%% function    psum=sum_nan(A,k)
%% computes the summation which ignores all nan's 
%% if A is an 1D array, k is not necessary, if A is a matrix
%% k is optional. Without k or k = 1, A is summed over column,
%% and k = 2, summation is over rows
%%
% Author: Jim Ledwell, 10/97 Woods Hole Oceanographic Institution


D=size(A);
if D(1) == 1 | D(2) == 1						% 1-D array
   [indx]=find(~isnan(A));
   psum=sum(A(indx));
else
   if nargin == 1
     k=1;				% default direction: sum over each colume
   end
   if k == 1
    for i=1:D(2)
       [indx]=find(~isnan(A(:,i)));
       if length(indx) > 0          
          psum(i)=sum(A(indx,i));
       else
          psum(i)=nan;
       end
    end
   else
    for i=1:D(1)
       [indx]=find(~isnan(A(i,:)));
       if length(indx) > 0
          psum(i)=sum(A(i,indx));
       else
          psum(i)=nan;
       end
   end
   psum=psum(:);
  end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?