?? som_demo1.m
字號:
clearclf,figure(1)N=100; % 阿 努礬膠磐狼 釬夯狼 骯薦N2=N+N; B1=ceil(N/2); B2=N+B1;eta=0.2;means=[0.7 -0.8 0.7 -0.8];var= [0.2 0.2];x=datagen([N N],[means;var]); % x : 2N by 2x=randomize(x);% 青狼 藹闌 罰待竅霸 集扁disp('11俺狼 春快繁闌 葷儈竅咯 急屈利欄肺 硅凱闌 父甸絹 1俊輯 11鱉瘤 扼駭傅.');ncenter=11; % 葷儈且 努礬膠磐 春繁狼 骯薦w=rand(ncenter,2)-0.5*ones(ncenter,2); % 檬扁 春快繁籃 漂隆 傍埃惑俊 烙狼肺 困摹矯糯.subplot(121),plot(x(:,1),x(:,2),'r.',w(:,1),w(:,2),'*-')axis([-2 2 -2 2])title('檬扁拳')i=1; iter=1; converge=0;while converge==0, dn=ones(ncenter,1)*x(i,:)-w; ddn=sum((dn.*dn)')'; % ddn: ncenter by 1 [tmp,istar]=min(ddn); if istar==1, w([istar:istar+1],:)=w([istar:istar+1],:)+eta*(ones(2,1)*x(i,:)-w([istar:istar+1],:)); elseif istar==ncenter, w([istar-1:istar],:)=w([istar-1:istar],:)+eta*(ones(2,1)*x(i,:)-w([istar-1:istar],:)); else w([istar-1:istar+1],:)=w([istar-1:istar+1],:)+eta*(ones(3,1)*x(i,:)-w([istar-1:istar+1],:)); end subplot(122), plot(x(:,1),x(:,2),'r.',x(i,1),x(i,2),'o',w(:,1),w(:,2),'*-') title(['Iteration = ' num2str(iter)]) drawnow i=rem(i+1,N2); iter=iter+1; if i==0, x=randomize(x); % 努礬膠磐狼 鑒輯甫 罰待竅霸 集綽促 i=1; % 犁硅摹等 澇仿欄肺 矯累 end if rem(iter,50)==0, eta=eta*0.9; %if isempty(converge), converge=0; end if iter >=200, converge=1; end endendsubplot(122),plot(x(:,1),x(:,2),'r.',w(:,1),w(:,2),'*-')text(w(1,1),w(1,2)+0.2,'1'), text(w(ncenter,1),w(ncenter,2)+0.2,int2str(ncenter))title(['Iteration = ' num2str(iter)])axis([-2 2 -2 2])
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -