📄 zhuizongfa.m
字号:
close all
clear all;
clc
R=[1,0.2,0.3,0.4,0.5,0.6;
0.2,1,0.35,0.38,0.55,0.52;
0.3,0.35,1,0.7,0.2,0.23;
0.4,0.38,0.7,1,0.25,0.33;
0.5,0.55,0.2,0.25,1,0.66;
0.6,0.52,0.23,0.33,0.66,1];
lamda=0.5;
[m,n]=size(R);
for I=1:m
for J=1:n
if R(I,J)>=lamda
R(I,J)=1;
else
R(I,J)=0;
end
end
end
A=[];
for I=1:m
for J=1:n
if R(I,J)==1 &&I>J
A=[A;I,J;];
end
end
end
g=1;
b=[g];
[p,q]=size(A);
t=0;
while(t~=p)
for I=1:p
if A(I,1)==g
b=[b,A(I,2)];
elseif A(I,2)==g
b=[b,A(I,1)];
end
end
c=b;
d=length(c);
D=d;
for I=1:d
g=b(I);
for J=1:p
if A(J,1)==g
e=(sort(A(J,2)==c(1:d),'descend'));
if e(1)==0
b=[b,A(J,2)];
end
elseif A(J,2)==g
e=(sort(A(J,1)==c(1:d),'descend'));
if e(1)==0
b=[b,A(J,1)];
end
end
end
c=b;
d=length(c);
end
while(D~=d)
D=d;
for I=D+1:d
g=b(I);
for J=1:p
if A(J,1)==g
e=(sort(A(J,2)==c(1:d),'descend'));
if e(1)==0
b=[b,A(J,2)];
end
elseif A(J,2)==g
e=(sort(A(J,1)==c(1:d),'descend'));
if e(1)==0
b=[b,A(J,1)];
end
end
end
c=b;
d=length(c);
end
end
C=[];
C=[C,b;];
b=sort(b,'ascend');
for I=1:d
if b(I)~=I
g=I;
break;
end
end
b=[b,g];
for I=1:p
if A(I,1)==g
b=[b,A(I,2)];
elseif A(I,2)==g
b=[b,A(I,1)];
end
end
t=length(b);
C=[C;b(D+1:t),zeros(1,2*D-t)];
end
[a,b]=size(C);
r=rank(C);
sprintf('经过追踪法,数据可以分成%d类',r)
for I=1:r
D=[];
for J=1:b
if C(I,J)~=0
D(J)=C(I,J);
end
end
sprintf('第%d类为:',I)
sprintf('X(%d)',D(1,:))
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -