conncomp
连通图组件
描述
例子
查找图形组件
创建并绘制具有三个连接组件的无向图。使用conncomp
确定每个节点属于哪个组件。
G = graph([1 1 4],[2 3 5],[1 1 1],6);情节(G)
bin = 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 4 6 5 1 3 2
weak_bin = conncomp(G,“类型”,“弱”)
weak_bins =1×101 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
得到每个组件的大小。
[bin,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之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:bin = conncomp(G,'OutputForm','cell')
OutputForm
- - - - - -输出类型
“向量”
(默认)|“细胞”
输出类型,指定为逗号分隔的对,由“OutputForm”
,要么“向量”
或“细胞”
.
选项 | 输出 |
---|---|
“向量” (默认) |
垃圾箱 数值向量,指示每个节点属于哪个连接的组件。 |
“细胞” |
垃圾箱 是单元格数组,和垃圾箱{j} 包含属于组件的所有节点的节点idj . |
类型
- - - - - -连接组件类型
“强”
(默认)|“弱”
请注意
的“类型”
选项仅支持用于创建的万博1manbetx有向图有向图
.
连接组件的类型,指定为由逗号分隔的对组成“类型”
,要么“强”
(默认)或“弱”
.
选项 | 结果 |
---|---|
“强” (默认) |
只有当两个节点之间存在连接路径时,它们才属于同一个连接组件这两个的方向。 |
“弱” |
如果有路径连接两个节点,则两个节点属于同一个连接组件,忽略边缘方向。 |
例子:bin = conncomp(G,'Type','weak')
计算有向图的弱连通分量G
.
输出参数
垃圾箱
-连接组件
向量|单元格数组
连接的组件,作为向量或单元格数组返回。bin编号将图中的每个节点分配给连接的组件:
如果
OutputForm
是“向量”
(默认)垃圾箱
数值向量,指示每个节点所属的连接组件(bin)。如果
OutputForm
是“细胞”
,然后垃圾箱
是单元格数组,与垃圾箱{j}
包含属于组件的所有节点的节点idj
.
binsizes
-每个连接组件的尺寸
向量
每个连接组件的大小,作为一个向量返回。binsizes(我)
给出组件中元素的个数我
.的长度binsizes
等于连接组件的数量,马克斯(箱)
.
更多关于
弱连通分量
如果存在连接两个节点的路径(忽略边缘方向),则两个节点属于同一个弱连接组件。两个弱连接组件之间没有边。
强分量和弱分量的概念只适用于有向图,因为它们对于无向图是等价的。
强连接组件
如果两个节点在两个方向上都有路径连接,则两个节点属于同一个强连接分量。两个强连接组件之间可以有边,但这些连接边从来不是循环的一部分。
强连通分量的仓号是这样的:连接两个分量的任何边都是从仓号较小的分量指向仓号较大的分量。
强分量和弱分量的概念只适用于有向图,因为它们对于无向图是等价的。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
名称-值参数
“OutputForm”、“细胞”
不支持指定单元格数组输出的。万博1manbetx
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。