transclosure
传递闭包
说明
示例
图的传递闭包
创建并绘制一个有向图。
G = digraph([1 2 3 4 4 4 5 5 5 6 7 8],[2 3 5 1 3 6 6 7 8 9 9 9]); plot(G)
查找图 G
的传递闭包,并绘制所得的图。H
包含与 G
相同的节点,但具有其他边。
H = transclosure(G); plot(H)
H
中的传递闭包信息可用于回答有关原始图形 G
的可达性问题。
确定 G
中可从节点 1 到达的节点。这些节点是传递闭包图 H
中节点 1 的后继节点。
N = successors(H,1)
N = 7×1
2
3
5
6
7
8
9
计算可达性矩阵
创建并绘制一个有向图。
s = [1 1 2 2 3 4 4 5]; t = [2 4 3 4 5 5 6 6]; G = digraph(s,t); plot(G,'Layout','subspace')
计算 G
的传递闭包的邻接矩阵。结果将获得一个可达性矩阵,该矩阵具有非零值以指示从每个节点可到达哪些节点。
D = transclosure(G); R = full(adjacency(D))
R = 6×6
0 1 1 1 1 1
0 0 1 1 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 0 1
0 0 0 0 0 0
例如,要回答问题“哪些节点可从节点 3 到达?”,您可以查看矩阵中的第三行。该行指示只有节点 5 和 6 可从节点 3 到达:
find(R(3,:))
ans = 1×2
5 6
输出参量
H
— G
的传递闭包
digraph
对象
G
的传递闭包,以 digraph
对象形式返回。表 G.Nodes
被复制到 H
,但 G.Edges
中的所有属性被删除。
使用 successors(H,n)
确定 G
中可从节点 n
到达的节点。
详细信息
传递闭包
图的传递闭包描述各节点之间的路径。如果图中存在从节点 i
到节点 j
的路径,则在该图的传递闭包中节点 i
和节点 j
之间存在一条边。因此,对于图中的给定节点,传递闭包会将任何可达节点视为该节点的直接后继节点(后代)。
版本历史记录
在 R2015b 中推出
另请参阅
digraph
| transreduction
| conncomp
| successors
| predecessors
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)