📄 som_winner.m
字号:
function [winner,d_min] = som_winner(x_in,W)
% som_winner calculates the winner neuron
% (based on euclidean distance)
%
% winner = som_winner(x_in,W);
%
% input:
% x_in sample [1 x p]
% W unfolded kohonen weights [size*size x p]
%
% output:
% winner winner neuron
%
% see the HTML HELP files (help.htm) for details
if length(find(isnan(x_in)))== 0
D_squares_x = (sum(x_in'.^2))'*ones(1,size(W,1));
D_squares_w = sum(W'.^2);
D_product = - 2*(x_in*W');
D = (D_squares_x + D_squares_w + D_product).^0.5;
[d_min,winner] = min(D);
else
d_min = NaN;
for m = 1:size(W,1)
d = dist_calc(x_in,W(m,:));
if isnan(d_min)|d < d_min
winner = m;
d_min = d;
end
end
end
%--------------------------------------------
function D = dist_calc(x_1,x_2,dist);
d = (x_1 - x_2).^2;
D = (sum(d(~isnan(d))))^0.5;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -