about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/netlab3.3/somfwd.m
blob: 0e980284ffbcd5818a5f410eeeecebb537ee0b4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function [d2, win_nodes] = somfwd(net, x)
%SOMFWD	Forward propagation through a Self-Organising Map.
%
%	Description
%	D2 = SOMFWD(NET, X) propagates the data matrix X through  a SOM NET,
%	returning the squared distance matrix D2 with dimension NIN by
%	NUM_NODES.  The $i$th row represents the squared Euclidean distance
%	to each of the nodes of the SOM.
%
%	[D2, WIN_NODES] = SOMFWD(NET, X) also returns the indices of the
%	winning nodes for each pattern.
%
%	See also
%	SOM, SOMTRAIN
%

%	Copyright (c) Ian T Nabney (1996-2001)

% Check for consistency
errstring = consist(net, 'som', x);
if ~isempty(errstring)
    error(errstring);
end

% Turn nodes into matrix of centres
nodes = (reshape(net.map, net.nin, net.num_nodes))';
% Compute squared distance matrix
d2 = dist2(x, nodes);
% Find winning node for each pattern: minimum value in each row
[w, win_nodes] = min(d2, [], 2);