self-organizing map plotting help

I have tried two years to plot Som map (self-organizing map);but I can't do it with matlab
this is my program (I want plot the position of the input [1 0] in the map) please help me
I have read help plotsom, doc , nothing to do this
p1=[1 1]'; p2=[1 2]'; p3=[2 -1]'; p4=[2 -2]'; p5=[-1 2]'; p6=[-2 1]'; p7=[-1 -1]'; p8=[-2 -2]';
P=[p1 p2 p3 p4 p5 p6 p7 p8];
% Create a Self-Organizing Map
dimension1 = 10;
dimension2 = 10;
net = selforgmap([dimension1 dimension2]);
% Train the Network
[net,tr] = train(net,P);
% Test the Network
outputs = net(P);
% View the Network
view(net)
%test
A=sim(net,[1 0]);
%plot Som map
axis([0 10 0 10]);
%hold on; plotting A in the Map
circles = plot(A,'ob');

3 Comments

Mouh - I think that you need to provide more details. What do you mean when you say that you can't do it with matlab? Are you observing errors (and if so, what are they) or are you just not getting the results that you desire?
thank you for your interesting to my question; I cant't do it with matlab ; I can't see the results of SOM in matlab; I can only training the SOM and I can't test the SOM ; I thing the SOM of matlab is not complet

Sign in to comment.

 Accepted Answer

>> szout = size(outputs) % [ 100 8 ]
uniqueout = unique(outputs) % [ 0 1 ]
szout =
100 8
uniqueout =
0
1
>> findones = find(outputs == 1)
findones =
7
103
221
341
405
523
611
701
These can be converted to the positions of the training data in the 10 x 10 matrix.
similarly,
>> size(net([ 1 0]))
ans =
100 2
You can calculate the position .
However, I cannot make any sense of most of the plotsom routines.
Sorry,
Greg

5 Comments

thank you a lot .that help me a lot; please if you can tell me how I can test this self-organizing map for exemple with this data [-2 2]
the self-organizing map of matlab; we can only training? not testing the map
y = net([-2 2]) will give you a 1x2 answer just like above for [ 1 0 ].
thank you a lot , but when I use this; they give me two circles in the map (must have one circle in the map)
y = net([-2 2]);
%plot Som map
axis([0 10 0 10]);
%hold on; plotting A in the Map
circles = plot(y(:,1),y(:,2),'ob');
thank you a lot , but when I use this; they give me two circles in the map (must have one circle in the map)
y = net([-2 2]);
%plot Som map
axis([0 10 0 10]);
%hold on; plotting A in the Map
circles = plot(y(:,1),y(:,2),'ob');

Sign in to comment.

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!