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

📄 kde.m

📁 Non-parametric density estimation
💻 M
字号:
function p = kde(points,ks,weights,typeS)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% kde(points,ksize[,weights][,type]) -- nonparametric density estimate of a pdf%%  points is the [Ndim x Npoints] array of kernel locations%  ksize may be a scalar, [Ndim x 1], [Ndim x Npoints], or%    a string (for data-based methods; see @kde/ksize for allowed methods)%  weights is [1 x Npoints] and need not be pre-normalized%  type can be one of: 'Gaussian', 'Laplacian', 'Epanetchnikov' %    (only 1st letter required) (Gaussian by default)%%  See also: ksize, getPoints, getBW, getWeights, getType%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Copyright (C) 2003 Alexander Ihler; distributable under GPL -- see README.txttype = 0;kstype = []; if ((nargin == 1) & isa(points,'kde'))% CONSTRUCTOR FROM KDE-TYPE  type = points.type; weights = getWeights(points);  if (size(points.bandwidth,2)>2*points.N), ks = getBW(points,1:getNpts(points));  else ks = getBW(points,1); end;  if (type == 0), ks = ks.^2; end;  points = getPoints(points);elseif (nargin == 1)  % ugh, needed for deserialization  for i=1:numel(points)    p(i) = class(points(i), 'kde');  end  p = reshape(p, size(points));  returnelse if (nargin > 0)% CONSTRUCTOR FROM RAW DATA  error(nargchk(2,4,nargin));  if (isa(ks,'char')) kstype = ks; ks =1; end;  if (size(ks,1) == 1) ks = repmat(ks,[size(points,1),1]); end;  if (nargin < 3) weights = ones(1,size(points,2)); end;  if (isempty(weights)) weights = ones(1,size(points,2)); end;  if (nargin < 4) typeS = 'g';  else typeS = lower(typeS); typeS = typeS(1); end;  switch(typeS)    case 'l', type = 2;    case 'e', type = 1;    case 'g', type = 0;  ks = ks.^2;    otherwise, error('Type must be one of (G)aussian, (L)aplacian, or (E)panetchnikov');  end;  weights = weights/sum(weights);      % Check matrix sizes:  [D,N] = size(points);    if any(size(weights)~=[1,N]) error('Weights must be [1xNpoints] (or empty)'); end;  bwsize = size(ks);  if (any(bwsize~=[1,1]) && any(bwsize~=[D,1]) && any(bwsize~=[D,N]))    error('Bandwidth must be scalar, [Dx1], [DxN], or an automatic selection method');   end;  else% EMPTY CONSTRUCTOR  points = []; ks = []; weights = [];end; end;p = BallTreeDensity(points,weights,ks,type);p = class(p,'kde');if (length(kstype))     p = ksize(p,kstype); end;

⌨️ 快捷键说明

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