⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nanstats.m

📁 很全的som工具箱 四个demo可为初学者提够帮助
💻 M
字号:
function [me, st, md, no] = nanstats(D)%NANSTATS Statistical operations that ignore NaNs and Infs.%% [mean, std, median, nans] = nanstats(D)%%  Input and output arguments: %   D   (struct) data or map struct%       (matrix) size dlen x dim%%   me  (double) columnwise mean%   st  (double) columnwise standard deviation%   md  (double) columnwise median%   no  (vector) columnwise number of samples (finite, not-NaN)% Contributed to SOM Toolbox vs2, February 2nd, 2000 by Juha Vesanto% http://www.cis.hut.fi/projects/somtoolbox/% Version 2.0beta juuso 300798 200900%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% check arguments(nargchk(1, 1, nargin));  % check no. of input args is correctif isstruct(D),   if strcmp(D.type,'som_map'), D = D.codebook;  else D = D.data;  endend[dlen dim] = size(D);me = zeros(dim,1)+NaN;md = me;st = me;no = me;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% computationfor i = 1:dim,  ind = find(isfinite(D(:, i))); % indices of non-NaN/Inf elements  n   = length(ind);             % no of non-NaN/Inf elements  me(i) = sum(D(ind, i)); % compute average  if n == 0, me(i) = NaN; else me(i) = me(i) / n; end  if nargout>1,     md(i) = median(D(ind, i)); % compute median    if nargout>2,       st(i) = sum((me(i) - D(ind, i)).^2); % compute standard deviation      if n == 0,     st(i) = NaN;      elseif n == 1, st(i) = 0;      else st(i) = sqrt(st(i) / (n - 1));      end      if nargout>3, 	no(i) = n; % number of samples (finite, not-NaN)      end    end  endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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