📄 assort.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 + -