www.gusucode.com > nnet 案例源码 matlab代码程序 > nnet/demosm1.m
%% One-Dimensional Self-organizing Map % Neurons in a 2-D layer learn to represent different regions of the input space % where input vectors occur. In addition, neighboring neurons learn to respond % to similar inputs, thus the layer learns the topology of the presented input % space. % % Copyright 1992-2011 The MathWorks, Inc. %% % Here 100 data points are created on the unit circle. % % A competitive network will be used to classify these points into natural % classes. angles = 0:0.5*pi/99:0.5*pi; X = [sin(angles); cos(angles)]; plot(X(1,:),X(2,:),'+r') %% % The map will be a 1-dimensional layer of 10 neurons. net = selforgmap(10); %% % Specify the network is to be trained for 10 epochs and use TRAIN to train the % network on the input data P: net.trainParam.epochs = 10; net = train(net,X); %% % Now plot the trained network's weight positions with PLOTSOMPOS. % % The red dots are the neuron's weight vectors, and the blue lines connect each % pair within a distance of 1. plotsompos(net) %% % The map can now be used to classify inputs, like [1; 0]: % % Either neuron 1 or 10 should have an output of 1, as the above input vector % was at one end of the presented input space. The first pair of numbers % indicate the neuron, and the single number indicates its output. x = [1;0]; a = net(x)