本文主要是介绍由邻接矩阵(Adjacent Matrix)获取无向图连通分量(Connected Component)(MATLAB代码实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这里基于MATLAB图论工具制作输入邻接矩阵,输出连通分量。
输入输出
函数输入为A为邻接矩阵,ng为所含最少智能体个数的连通分量,如ng为2则输出含智能体个数大于等于2的连通分量;
函数输出为输入邻接矩阵对应的连通分量,输出格式为MATLAB元胞数组格式。
函数
function CG=CellG(A,ng)
G=graph(A);
[bin,binsize] = conncomp(G);
b=find(binsize>=ng);
[~,m]=size(b);
CG=cell(m,1);
if m>0for i=1:m[~,com]=find(bin==b(i)); CG(i,1)={com};end
end
end
例程
clear;
close all;
clc;
%%
A =[0 1 0 0 0;1 0 0 0 0;0 0 0 1 0;0 0 1 0 0;0 0 0 0 0];CG=CellG(A,2);%%function CG=CellG(A,ng)
G=graph(A);
[bin,binsize] = conncomp(G);
b=find(binsize>=ng);
[~,m]=size(b);
CG=cell(m,1);
if m>0for i=1:m[~,com]=find(bin==b(i)); CG(i,1)={com};end
end
end
当输入ng=2,可见输出结果CG为:
当修改ng=1,输出结果CG为:
这篇关于由邻接矩阵(Adjacent Matrix)获取无向图连通分量(Connected Component)(MATLAB代码实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!