⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hw3.m

📁 使用LVQ算法对四类不同的点进行分类,并将最后结果画出
💻 M
字号:
%% homework3 LVQ
wold=[1 1; 9 9; 9 1; 1 9]; alpha=0.1; wold2=zeros(4,2);
input=[4 4 4 4 4 2 2 2 2; 4 4 4 4 4 2 2 2 2; 1 1 1 1 1 1 1 2 2; 1 1 1 1 1 1 1 2 2;
    1 1 1 1 1 1 1 3 3; 1 1 1 1 1 1 1 3 3; 1 1 1 1 1 1 1 3 3; 1 1 1 1 1 1 1 3 3;
    1 1 1 1 1 1 1 3 3];
       input=rot90(input,3);
        [mm1,nn1]=find(input==1);
        [mm2,nn2]=find(input==2);
        [mm3,nn3]=find(input==3);
        [mm4,nn4]=find(input==4);
        plot(mm1,nn1,'r+')
        hold on
        plot(mm2,nn2,'bo')
        hold on
        plot(mm3,nn3,'g*')
        hold on
        plot(mm4,nn4,'mpentagram')

epoch=0;    
while(norm(wold-wold2)>1e-10)
   for i=1:9
       for j=1:9
         for v=1:4
           dis(v)=((i-wold(v,1)).^2)+((j-wold(v,2)).^2); %% find the minimum distance
         end
       [xx1,yy1]=min(dis);
       wold2=wold;
       if input(i,j)==yy1
           wold(yy1,1)=wold(yy1,1)+alpha*(i-wold(yy1,1));
           wold(yy1,2)=wold(yy1,2)+alpha*(j-wold(yy1,2));
       else
           wold(yy1,1)=wold(yy1,1)-alpha*(i-wold(yy1,1));
           wold(yy1,2)=wold(yy1,2)-alpha*(j-wold(yy1,2));
       end
       end
   end
   alpha=alpha*0.9;
   epoch=epoch+1;
end
epoch

for i=1:9
    for j=1:9
         for v=1:4
           dis(v)=((i-wold(v,1)).^2)+((j-wold(v,2)).^2);
         end
         [xx1,yy1]=min(dis);
         input(i,j)=yy1;
    end
end
        [m1,n1]=find(input==1);
        [m2,n2]=find(input==2);
        [m3,n3]=find(input==3);
        [m4,n4]=find(input==4);

        figure,plot(m1,n1,'r+')
        hold on
        plot(m2,n2,'bo')
        hold on
        plot(m3,n3,'g*')
        hold on
        plot(m4,n4,'mpentagram')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -