• 大小: 1KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: Matlab
  • 标签: 有序聚类  matlab  

资源简介

简单的有序聚类的程序编码,编写的是一个函数,但是在处理距离的问题上,使用的方法还不够好,希望参考着注意。

资源截图

代码片段和文件信息

function yxjl=myyxjl1(x)    %%%%要求输入的观测值矩阵x:行表示各个样品,列表示每个样品的属性值
a=size(x);
len1=a(1);%%%%%矩阵的样品个数
len2=a(2);%%%%%矩阵的属性个数
z=zeros(len1);%直径矩阵
h=zeros(len1);%最小损失矩阵
k=zeros(len1);%分类的矩阵

for i=1:len1
    for j=i:len1
        if i==j%当某一类为一个样品时,类的距离为0
            z(ij)=0;%计算类的距离
        else
            y=x(i:j);%当某一类为几个样品时
           if len2==1 %当属性个数只有一个时,计算类距离
            z(ij)=(j-i)*var(y);%计算类的距离
           else %当样品属性大于一个时,计算类距离
            x1=x(i:j:);
            x11=sum(x1)/(j-i+1);
            for m=i:j
            z(ij)=0;
            z(ij)=(x(m:)-x11)*(x(m:)-x11)‘+z(ij);
         

评论

共有 条评论