my_clustering.m
来自「我自己编写的分层聚类算法」· M 代码 · 共 51 行
M
51 行
w=[2 2 2 3 0 -2 -1 1 3;0 2 4 3 3 2 -1 -2 -1];
%lable of the cluster
cluster=[1 2 3 4 5 6 7 8 9];
%initialize distance matrix
D=zeros(9,9);
for i=1:9
for j=1:9
D(i,j)=(w(1,i)-w(1,j))^2+(w(2,i)-w(2,j))^2;
end
end
for i=1:8
dmin=inf;
%search for minimum distance
for j=1:9
for k=j+1:9
if D(j,k)<dmin&D(j,k)>0
dmin=D(j,k);
if j<k
elem1=j;
elem2=k;
else
elem1=k;
elem2=j;
end
end
end
end
%clustering ,and adjust distance matrix&cluster array
temp=cluster(1,elem2);
for m=1:9
if cluster(1,m)==temp
cluster(1,m)=cluster(1,elem1);
end
end
%output
cluster(1,:)
%adjust distance matrix,take the maximal value
for n=1:9
if D(n,elem1)<D(n,elem2)&D(n,elem1)>0
D(n,elem1)=D(n,elem2);
end
end
D(elem1,:)=D(:,elem1)';
%set to -1 for redundant element
D(:,elem2)=[-1 -1 -1 -1 -1 -1 -1 -1 -1]';
D(elem2,:)=[-1 -1 -1 -1 -1 -1 -1 -1 -1];
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?