📄 join_cluster.m
字号:
function [distance,member_amount]=join_cluster( XY,mark)
[m,n]=size(XY);
node_amount=n;%节点数目
member_amount=zeros(1,node_amount);
distance=zeros(2,n);
position=find(mark==1);%簇头位置
[m,n]=size(position);
head_amount=n;%簇头数目
current_head=1;
[m,n]=size(find(mark==0));
if n==node_amount
distance=zeros(2,node_amount);
member_amount=zeros(1,node_amount);
return
end
for i=1:node_amount
min_distance=1000;
if mark(1,i)==0%判断是否为普通节点
for j=1:head_amount%找出距离最短簇头节点
%普通节点i与簇头节点j距离
if distance_two_node(XY(:,i)',XY(:,position(j))')<min_distance%判断是否比当前值小
min_distance=distance_two_node(XY(:,i)',XY(:,position(j))');
current_head=position(j);%保存当前最短簇头节点
end
end
distance(1,i)=min_distance;%找到了离普通节点i最短簇头节点
distance(2,i)=current_head;%簇头位置
member_amount(current_head)=member_amount(current_head)+1;%把簇头节点计数加1
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -