function D = semWoutNaN(D, dim) % semWoutNaN % D - N-dimensional data matrix. % dim - Dimension to calculate mean over. % % RETURN % D - (N-1)-dimensional data matrix. In Matlab dimension dim is % retained and set to the value of 1. % % DESCRIPTION % Calculate the standard error of the mean (SEM) of D along dimension dim % excluding NaN entries. % Florian Raudies, 09/07/2014, Boston University. Dim = ones(1,length(size(D))); Dim(dim) = size(D,dim); Index = isnan(D); D(Index) = 0; % Number of elements in that dimension. N = size(D,dim) - sum(Index,dim); % Mean over that dimension. M = sum(D,dim)./(eps+N); % Standard error of the mean. D = sqrt(sum((~Index).*(D - repmat(M,Dim)).^2,dim))./(eps+N);