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

📄 f_produce_cluster.m

📁 多目标跟踪 (三维)-算法matlab编制
💻 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 + -