修改现有图的节点和边
此示例演示如何使用 addedge、rmedge、addnode、rmnode、findedge、findnode 及 subgraph 函数访问和修改 graph 或 digraph 对象中的节点和/或边。
添加节点
创建一个包含四个节点和四条边的图。s 和 t 中的对应元素用于指定每条图边的结束节点。
s = [1 1 1 2]; t = [2 3 4 3]; G = graph(s,t)
G =
graph with properties:
Edges: [4×1 table]
Nodes: [4×0 table]
查看图的边列表。
G.Edges
ans=4×1 table
EndNodes
________
1 2
1 3
1 4
2 3
使用 addnode 向图中添加五个节点。该命令将添加五个节点 ID 分别为 5、6、7、8 和 9 的不相连节点。
G = addnode(G,5)
G =
graph with properties:
Edges: [4×1 table]
Nodes: [9×0 table]
删除节点
使用 rmnode 从图中删除节点 3、5 和 6。与其中任何一个已删除节点相连的所有边也会被删除。对图中剩余的六个节点重新进行编号,以反映新的节点数量。
G = rmnode(G,[3 5 6])
G =
graph with properties:
Edges: [2×1 table]
Nodes: [6×0 table]
添加边
使用 addedge 向 G 添加两条边。第一条边位于节点 1 和节点 5 之间,第二条边位于节点 2 和节点 5 之间。该命令将向 G.Edges 添加两个新行。
G = addedge(G,[1 2],[5 5])
G =
graph with properties:
Edges: [4×1 table]
Nodes: [6×0 table]
删除边
使用 rmedge 删除节点 1 和节点 3 之间的边。该命令将从 G.Edges 中删除一个行。
G = rmedge(G,1,3)
G =
graph with properties:
Edges: [3×1 table]
Nodes: [6×0 table]
确定边索引
确定节点 1 和 5 之间的边的边索引。边索引 ei 是 G.Edges 中的行号。
ei = findedge(G,1,5)
ei = 2
确定节点索引
在图中添加节点名称,然后确定节点 'd' 的节点索引。数值节点索引 ni 是 G.Nodes 中的行号。使用其他图函数(例如 shortestpath)时,可以同时使用 ni 和节点名称 'd' 来表示节点。
G.Nodes.Name = {'a' 'b' 'c' 'd' 'e' 'f'}';
ni = findnode(G,'d')ni = 4
提取子图
使用 subgraph 提取仅包含两个节点的图部分。
H = subgraph(G,[1 2])
H =
graph with properties:
Edges: [1×1 table]
Nodes: [2×1 table]
查看子图的边列表。
H.Edges
ans=table
EndNodes
______________
{'a'} {'b'}
通过变量编辑器修改节点和边表格
图对象的节点和边信息包含在 Nodes 和 Edges 这两个属性中。这两个属性都是包含变量的表,用于说明图中的节点和边的特性。由于 Nodes 和 Edges 都是表,因此您可以使用变量编辑器以交互方式查看或编辑这些表。您不能使用变量编辑器添加或删除节点或边,也不能编辑 Edges 表的 EndNodes 属性。变量编辑器适用于管理 Nodes 和 Edges 表中的额外节点和边属性。有关详细信息,请参阅 创建和编辑变量。
另请参阅
graph | digraph | addedge | rmedge | addnode | rmnode | findedge | findnode | subgraph