📄 f_produce_cluster.m
字号:
function[cl_total,cl_element_total,cl_matrix]=f_produce_cluster(target_total,u);%聚形成
cl_total=0;
tag=linspace(0,0,target_total);%目标是否已归入某聚标志
for i=1:target_total
if tag(i)==0%尚未属于任何一个聚
for j=1:target_total
if (u(1,j)<=u(2,i)&u(2,i)<=u(2,j))| (u(1,i)<=u(2,j)&u(2,j)<=u(2,i))
xtag(i,j)=1;
end
if (u(3,j)<=u(4,i)&u(4,i)<=u(4,j))| (u(3,i)<=u(4,j)&u(4,j)<=u(4,i))
ytag(i,j)=1;
end
if (u(5,j)<=u(6,i)&u(6,i)<=u(6,j))| (u(5,i)<=u(6,j)&u(6,j)<=u(6,i))
ztag(i,j)=1;
end
if (xtag(i,j)*ytag(i,j)*ztag(i,j))==1&j<i
tag(i)=1;
cl_belong(i)=cl_belong(j);%目标j属于第cl_belong(i)个聚
cl(cl_belong(j)).vector=[cl(cl_belong(j)).vector i];
break;%跳出for j循环
end
if (xtag(i,j)*ytag(i,j)*ztag(i,j))==1&j>i%生成新聚
if tag(i)==0
cl_total=cl_total+1;
cl_belong(i)=cl_total;
cl(cl_total).vector=i;
tag(i)=1;
end
cl_belong(j)=cl_total;
cl(cl_total).vector=[cl(cl_total).vector j];
tag(j)=1;
end
end%for j
end%if tag(i)=0;
end%for i
cl_element_total=[];
for i=1:cl_total
cl_elment_total(i)=size(cl(i).vector);%每个聚中的元素个数
end
max_length=max(cl_elment_total);
cl_matrix=[];
for i=1:cl_total
temp=cl(i).vector;
for j=cl_element_total(i)+1:max_length
temp=[temp 0];
end
cl_matrix=[cl_matrix;temp];%按行存放所有的聚向量,不足长度添零补齐
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -