FRAGMENTY KODU (zmienione porównując z wersją DEMO- w bibliotece Matlaba)
function nnd7sh(cmd,arg1,arg2,arg3)
%NND7SH Supervised Hebb demonstration.
% Copyright 1994-2002 PWS Publishing Company and The MathWorks, Inc.
% $Revision: 1.6 $
%==================================================================
% ORIGONAL PATTERNS
% A
p1 = [ 0 0 0 0 0 0 0 0 0 0 ...
0 0 0 0 0 0 0 0 0 0 ...
0 1 1 1 1 1 1 1 1 0 ...
1 0 0 0 0 1 0 0 0 0 ...
1 0 0 0 0 1 0 0 0 0 ...
1 0 0 0 0 1 0 0 0 0 ...
1 0 0 0 0 1 0 0 0 0 ...
0 1 1 1 1 1 1 1 1 0 ...
0 0 0 0 0 0 0 0 0 0 ...
0 0 0 0 0 0 0 0 0 0 ]';
(…)
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% 15 PROCENT %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% A
a1 = [ 0 1 0 1 0 0 0 0 0 0 ...
0 1 0 1 0 0 0 0 0 0 ...
0 1 1 1 1 1 1 1 1 0 ...
1 0 0 0 0 1 0 0 0 0 ...
1 1 0 1 0 1 0 0 0 1 ...
1 0 1 0 0 1 0 1 0 0 ...
1 0 0 0 0 1 0 0 1 0 ...
0 1 1 1 1 1 1 1 1 0 ...
1 0 0 0 0 0 0 0 1 0 ...
0 0 1 0 1 0 0 1 0 0 ]';
(…)
%STWORZENIE MACIERZY ZAWIERAJĄCEJ MACIERZE LITER WEJŚCIOWYCH
P = [p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 p30 p31 p32 p33 p34 p35]*2-1;
%USTAWIENIE TEST PATTERNA (NP. SYGNAŁ 15% ZASZUMIENIA)
p = a1*2-1;
% Tłumaczenie help newrb z programu Matlab
% newrb(X,T,GOAL,SPREAD,MN,DF) przyjmuje takie parametry,
% X - macierz RxQ zawierająca Q wektorów wejściowych,
% T - macierz SxQ zawierająca Q wektorów celu.
% GOAL - średni błąd kwadratowy, domyślnie = 0.0.
% SPREAD - rozpiętość funkcji radialnej, domyślnie 1.0.
% MN - maksymalna liczba neuronów, domyślnie Q.
% DF - liczba neuronów dodawanych pomiędzy wyświetleniami,
% domyślnie = 25.
% i zwraca nowa siec radialna.
net = newrbe(P,P,8); % wartość rozpiętości wyliczona dla najmniejszego błędu
p = a1*2-1;
Y = net(p);
% dodatkowo nazwano „rule2” jako „brak tej opcji” ponieważ wykorzystując
% metodę RBF wyłączono tymczasowo w danym pliki pozostałe dwie metody przez
% co zmiana metody zwraca błędne wyniki i nieprawidłowości w działaniu DEMO
rule2 = uicontrol(...
'units','points',...
'position',[395 170 90 20],...
'style','radio',...
'string','brak tej opcji',...
'backg',nnltgray,...
'max',[2],...
'callback',[me '(''rule'',2)']);
% Wykorzystano dotychczasowe demo ulepszając je o tworzenie nowej sieci radialnej
% UPDATE OUTPUTS
Y = net(p);
Y = reshape(Y,p_y,p_x);
for k=1:p_x, for x=1:p_y
if Y(x,k) > 0
set(rp_squares(k,x),'facecolor',red)
else
set(rp_squares(k,x),'facecolor',ltyell)
end
end, end