conncomp
连通图组件
描述
例子
找到图形组件
创建并绘制一个无向图,其中包含三个相连的组件。使用conncomp
来确定每个节点属于哪个组件。
G = graph([1 1 4],[2 3 5],[1 1 1],6);情节(G)
垃圾箱= conncomp (G)
垃圾箱=1×61 1 1 2 2 3
强和弱图形分量
创建并绘制有向图,然后计算强连通分量和弱连通分量。弱连接组件忽略连接边的方向。
S = [1 2 2 3 3 3 4 5 5 5 8 8];T = [2 3 4 1 4 5 5 3 6 7 9 10];G =有向图(s, t);情节(G,“布局”,“分层”)
str_bins = conncomp (G)
str_bins =1×104 4 4 4 4 6 5 1 3 2
weak_bins = conncomp (G,“类型”,“弱”)
weak_bins =1×101 1 1 1 1 1 1 1 2 2 2
丢弃基于大小的图形组件
的第二个输出conncomp
提取图的最大分量或删除小于一定大小的分量。
创建并绘制有向图。该图有一个大组件、一个小组件和几个只包含一个节点的组件。
S = [1 2 2 3 3 3 4 5 5 5 8 8 9];T = [2 3 4 1 4 5 5 3 6 7 9 10 10];G =有向图(s t [], 20);情节(G,“布局”,“分层”)
计算弱连接分量并指定两个输出conncomp
得到每个组件的大小。
[本,binsize] = conncomp (G,“类型”,“弱”)
本=1×2011 11 11 2 2 2 3 4 5 6 7 8 9 10 11 12
binsize =1×127 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
使用binsize
从图中提取最大的分量。idx
是一个逻辑索引,指示每个节点是否属于最大的组件。的子图
函数提取所选择的节点idx
从G
.
Idx = binsize(bin) == max(binsize);SG =子图(G, idx);情节(SG)
类似的用法binsizes
是根据尺寸过滤掉组件。该过程类似于提取最大的组件,但是在这种情况下,每个节点可以属于满足大小要求的任何组件。
过滤掉任何成分G
少于3个节点的。idx
是一个逻辑索引,指示每个节点是否属于具有3个或更多节点的组件。
Idx = binsize(bin) >= 3;SG =子图(G, idx);情节(SG)
输入参数
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:垃圾箱= conncomp (G, OutputForm”,“细胞”)
OutputForm
- - - - - -类型的输出
“向量”
(默认)|“细胞”
输出类型,指定为逗号分隔的对,由“OutputForm”
,要么“向量”
或“细胞”
.
选项 | 输出 |
---|---|
“向量” (默认) |
垃圾箱 是一个数字向量,指示每个节点属于哪个连接组件。 |
“细胞” |
垃圾箱 是单元格数组,和垃圾箱{j} 包含属于该组件的所有节点的节点idj . |
类型
- - - - - -连接组件的类型
“强”
(默认)|“弱”
请注意
的“类型”
选项仅支持使用创建的有向图有向图
.
连接组件的类型,指定为逗号分隔的对,由“类型”
,要么“强”
(默认)或“弱”
.
选项 | 结果 |
---|---|
“强” (默认) |
只有在有路径连接它们时,两个节点才属于同一个连接组件这两个的方向。 |
“弱” |
如果有路径连接两个节点,则两个节点属于同一个被连接组件,忽略边缘方向。 |
例子:垃圾箱= conncomp (G、“类型”、“弱”)
计算有向图的弱连通分量G
.
输出参数
垃圾箱
——连接组件
向量|单元格数组
连接的组件,作为向量或单元格数组返回。bin编号将图中的每个节点分配给一个连接的组件:
如果
OutputForm
是“向量”
(默认)垃圾箱
是一个数字向量,指示每个节点属于哪个连接的组件(bin)。如果
OutputForm
是“细胞”
,然后垃圾箱
是单元格数组,与垃圾箱{j}
包含属于该组件的所有节点的节点idj
.
binsizes
—每个连接部件的尺寸
向量
每个连接组件的大小,作为向量返回。binsizes(我)
给出组件中元素的个数我
.的长度binsizes
等于连接组件的数量,马克斯(箱)
.
更多关于
弱连接组件
如果有路径连接两个节点(忽略边缘方向),则两个节点属于同一个弱连接分量。两个弱连接的分量之间没有边。
强分量和弱分量的概念只适用于有向图,因为它们对无向图是等价的。
强连通分量
如果两个节点在两个方向上都有路径连接,则两个节点属于同一个强连通分量。两个强连接的组件之间可以有边,但这些连接的边从来不是循环的一部分。
强连接组件的仓号是这样的,连接两个组件的任何边都是从仓号较小的组件指向仓号较大的组件。
强分量和弱分量的概念只适用于有向图,因为它们对无向图是等价的。
扩展功能
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
名称-值参数
“OutputForm”、“细胞”
指定不支持单元格数组输出的。
版本历史
介绍了R2015b
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。