📄 hw3.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 + -