MATLAB 帮助中心
传递闭包
H = transclosure(G)
H = transclosure(G) 将图 G 的传递闭包以新图 H 形式返回。H 中的节点与 G 中的节点相同,但 H 有其他边。如果 G 中有从节点 i 到节点 j 的路径,则 H 中的节点 i 和节点 j 之间有一条边。对于在同样两个节点之间具有多条边的多重图来说,输出图将用单条边代替它们。
H
G
i
j
示例
全部折叠
创建并绘制一个有向图。
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
digraph
输入图,指定为 digraph 对象。使用 digraph 创建有向图对象。
示例: G = digraph([1 2],[2 3])
G = digraph([1 2],[2 3])
G 的传递闭包,以 digraph 对象形式返回。表 G.Nodes 被复制到 H,但 G.Edges 中的所有属性被删除。
G.Nodes
G.Edges
使用 successors(H,n) 确定 G 中可从节点 n 到达的节点。
successors(H,n)
n
图的传递闭包描述各节点之间的路径。如果图中存在从节点 i 到节点 j 的路径,则在该图的传递闭包中节点 i 和节点 j 之间存在一条边。因此,对于图中的给定节点,传递闭包会将任何可达节点视为该节点的直接后继节点(后代)。
在 R2015b 中推出
digraph | transreduction | conncomp | successors | predecessors
transreduction
conncomp
successors
predecessors
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处