Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)
c = covar_nan(mat1, mat2);
function c = covar_nan ( mat1 , mat2 ) ; This function computes the covariance matrix between mat1 and mat2, which may contain NaNs. Elements of either matrix that have NaNs are ignored. It is assumed that the covariance will be taken along the column dimension of mat1 and mat2.
|This function is called by|
function c = covar_nan(mat1, mat2); if (size(mat1, 1) ~= size(mat2, 1)); error('The number of columns of mat1 and mat2 must be equal'); end [m1, n1] = size(mat1); [m2, n2] = size(mat2); mat1 = mat1'; c = NaN * ones(n1, n2); for i = 1:n1; kp1 = find(~isnan(mat1(i,:))); for j = 1:n2; kp2 = find(~isnan(mat2(:,j))); kp = intersect(kp1, kp2); if ~isempty(kp) c(i,j) = mat1(i,kp) * mat2(kp,j) / (length(kp)-1); end end end