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

📄 som_eucdist2.m

📁 很全的som工具箱 四个demo可为初学者提够帮助
💻 M
字号:
function d=som_eucdist2(Data, Proto)%SOM_EUCDIST2 Calculates matrix of squared euclidean distances between set of vectors or map, data struct%% d=som_eucdist2(D, P)%%  d=som_eucdist(sMap, sData);%  d=som_eucdist(sData, sMap);%  d=som_eucdist(sMap1, sMap2);%  d=som_eucdist(datamatrix1, datamatrix2);%%  Input and output arguments ([]'s are optional): %   D (matrix) size Nxd%     (struct) map or data struct%   P (matrix) size Pxd%     (struct) map or data struct%   d (matrix) distance matrix of size NxP %% IMPORTANT%% * Calculates _squared_ euclidean distances% * Observe that the mask in the map struct is not taken into account while %   calculating the euclidean distance%% See also KNN, PDIST.% Contributed to SOM Toolbox 2.0, October 29th, 2000 by Johan Himberg% Copyright (c) by Johan Himberg% http://www.cis.hut.fi/projects/somtoolbox/% Version 2.0beta Johan 291000%% Init %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if isstruct(Data);  if isfield(Data,'type') & ischar(Data.type),    ;  else    error('Invalid map/data struct?');  end  switch Data.type   case 'som_map'    data=Data.codebook;   case 'som_data'    data=Data.data;  endelse  % is already a matrix  data=Data;end% Take prototype vectors from prototype structif isstruct(Proto),    if isfield(Proto,'type') & ischar(Proto.type),    ;  else    error('Invalid map/data struct?');  end  switch Proto.type   case 'som_map'    proto=Proto.codebook;   case 'som_data'    proto=Proto.data;  endelse  % is already a matrix  proto=Proto; end% Check that inputs are matricesif ~vis_valuetype(proto,{'nxm'}) | ~vis_valuetype(data,{'nxm'}),  error('Prototype or data input not valid.')end% Record data&proto sizes and check their dims [N_data dim_data]=size(data); [N_proto dim_proto]=size(proto);if dim_proto ~= dim_data,  error('Data and prototype vector dimension does not match.');end% Calculate euclidean distances between classifiees and prototypesd=distance(data,proto);%%%% Classification %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function d=distance(X,Y);% Euclidean distance matrix between row vectors in X and YU=~isnan(Y); Y(~U)=0;V=~isnan(X); X(~V)=0;d=abs(X.^2*U'+V*Y'.^2-2*X*Y');

⌨️ 快捷键说明

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