Main Content

condensation

图凝聚

说明

C = condensation(G) 返回一个有向图 C,其节点表示 G 中的强连通分量。此归约可提供分量之间连通性的简化视图。

示例

示例

全部折叠

创建并绘制包含多个强连通分量的图。突出显示强连通分量。

s = [1 1 2 3 3 4 4 4 4 5 5 6 6 6 7 8 8 9 9 10 10 10 11 11 12 13 13 14 15];
t = [1 3 1 2 5 1 2 12 13 6 8 7 8 10 10 9 10 5 11 9 11 14 12 14 13 11 15 13 14];
G = digraph(s,t);
p = plot(G);

Figure contains an axes object. The axes object contains an object of type graphplot.

bins = conncomp(G);
p.MarkerSize = 7;
p.NodeCData = bins;
colormap(hsv(4))

Figure contains an axes object. The axes object contains an object of type graphplot.

使用 condensation 将每个分量表示为单个节点。根据节点所表示的分量用不同颜色标识节点。

C = condensation(G);
p2 = plot(C);
p2.MarkerSize = 7;
p2.NodeCData = 1:4;
colormap(hsv(4))

Figure contains an axes object. The axes object contains an object of type graphplot.

输入参数

全部折叠

输入图,指定为 digraph 对象。使用 digraph 创建有向图对象。

示例: G = digraph([1 2],[2 3])

输出参量

全部折叠

凝聚图,以 digraph 对象形式返回。C 是有向无环图 (DAG),并且以拓扑方式进行排序。C 中的节点数对应于 conncomp 返回的 bin 数。

condensation 通过 G 中的分量和连通性确定 C 中的节点和边:

  • C 包含 G 中每个强连通分量的节点。

  • 如果存在从分量 I 中任何节点到 G 的分量 J 中任何节点的边,则 C 包含节点 I 和节点 J 之间的一条边。

版本历史记录

在 R2016b 中推出