join_cluster.m

来自「无线传感器网络LEACH算法的matlab模型」· M 代码 · 共 32 行

M
32
字号
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 + =
减小字号Ctrl + -
显示快捷键?