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

📄 assort.m

📁 使用分解聚类算法在IRIS数据上进行聚类分析
💻 M
字号:
function [a1,a2,n1,n2]=assort(x1,x2,n);
%函数assort即实现将样本x1按分解聚类法分成a1,a2两类
%x1为待分类的样本矩阵,x2类型2的样本矩阵
%n为x1,x2中的样本总数
%returns:
%a1,a2为分类后类型1,类型2的样本矩阵
%n1,n2分别为类型1,类型2的样本数目

a1=x1;
a2=x2;
[n1,nc1]=size(a1);
n2=n-n1;
maxe=zeros(0);
  
for k=1:n;
e=zeros(1,n1);
for i=1:n1;
    e(1,i)=countE(i,a1,a2,n);
end
maxe(1,k)=max(max(e));         %求e值矩阵的最大值
[r,c]=find(e==maxe(1,k));      %r为最大值所在的行数,c为列数

if k==1
    a2(k,:)=a1(c,:);
    a1(c,:)=[];
    n1=n1-1;
    n2=n2+1;
else
    if maxe(1,k)<maxe(1,k-1)
        break;
    else
        atemp=a2';
        a1m=a1';
        a2m=[atemp,a1m(:,c)];
        a2=a2m';
        a1(c,:)=[];
        [rc,nc]=size(c);
        if nc>1
            n1=n1-nc;
            n2=n2+nc;
        else
            n1=n1-1;
            n2=n2+1;
        end
    end
end
end


⌨️ 快捷键说明

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