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

📄 julei.txt

📁 matlab作聚类分析
💻 TXT
字号:
function gg1(x)
temp=size(x);
M=temp(1);N=temp(2);
M_bak=M;
xiao=min(x);
da=max(x); 
MM=M;
u=1;
%进行数据标准化
XXX=(x-xiao(ones(MM,1),:))./(da(ones(MM,1),:)-xiao(ones(MM,1),:));
fprintf('\n标准处理后的数据=\n');
XXX
X=XXX';
XX(1,:)=1:M ;
XX(2:N+1,:)=X; 
w=zeros(4,MM); 
t=1;
YY=pdist(X')/sqrt(N);
SS=squareform(YY); 
%输出距离系数矩阵
fprintf('\n第1次距离系数矩阵=\n');
S=SS(:, 1:MM) 
while(M~=1)
for i=1:M
    j=i;
    S(j,j)=inf;
end
r=MM;
s=MM;
[y,a]=min(S);
[ymin,lie]=min(y) ;
for i=1:M
    if (y(i)==ymin)
        han=a(i);
        break
    end
end
%输出距离系数矩阵中最小元素所在的行和列
L=min(han,lie);
G=max(han,lie);
A=(XX(1,L)~=w(1,r));
B=(r>1);
while and(A,B)
      r=r-1;
      A=(XX(1,L)~=w(1,r)); 
      B=(r>1);   
end
AA=(XX(1,G)~=w(1,s));
B=(s>1);
while and(AA,B)
      s=s-1;
      AA=(XX(1,G)~=w(1,s));
      B=(s>1);
end
E=(r==1); 
F=(s==1); 
C=and(A,E); 
D=and(AA,F);
if  and(C,D)  
   X(:,L)=(X(:,L)+X(:,G))/2;
   w(1,u)=XX(1,L);
   w(2,u)=XX(1,G);
   w(3,u)=2;
   w(4,u)=MM+u;
   ZZ=[w(1,u),w(2,u),ymin];
   Z(t,:)=ZZ;
   t=t+1;
   u=u+1;
   elseif(D)
        X(:,L)=(X(:,L)*w(3,r)+X(:,G))/(w(3,r)+1);
        w(1,u)=XX(1,L);
        w(2,u)=XX(1,G);
        w(3,u)=w(3,r)+1;
        w(4,u)=MM+u; 
        Z(t,:)=[w(4,r),w(2,u),ymin];
        t=t+1;
        u=u+1;
    elseif(C)
        X(:,L)=(X(:,L)+X(:,G)*w(3,s))/(w(3,s)+1);
        w(1,u)=XX(1,L);
        w(2,u)=XX(1,G);
        w(3,u)=w(3,s)+1;
        w(4,u)=MM+u;
        ZZ=[w(1,u),w(4,s),ymin];
        Z(t,:)=ZZ;
        t=t+1;
        u=u+1;
    else
        w(1,u)=XX(1,L);
        w(2,u)=XX(1,G);
        w(3,u)=w(3,r)+w(3,s);
        w(4,u)=MM+u;     
        X(:,L)=(X(:,L)*w(3,r)+X(:,G)*w(3,s))/(w(3,r)+w(3,s));
        Z(t,:)=[w(4,r),w(4,s),ymin];
        t=t+1;
        u=u+1;
    end
    for q=G:M-1
        X(:,q)=X(:,q+1);
        XX(:,q)=XX(:,q+1);
    end
    X(:,M)=0;
    M=M-1;
    if(M~=1) 
       X=X(:,1:M);  
       YY=pdist(X')/sqrt(N); 
       SS=squareform(YY);
       %输出每次聚类以后的距离系数矩阵
       fprintf('\n第%d次距离系数矩阵=\n',M_bak-M+1);
       S=SS(:, 1:M) 
    end 
end
%画冰状图
[Zinfo,b] = dendrogram(Z);
result = Z; 

⌨️ 快捷键说明

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