修改现有图的节点和边
此示例演示如何使用 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: [4x1 table] Nodes: [4x0 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: [4x1 table] Nodes: [9x0 table]
删除节点
使用 rmnode
从图中删除节点 3、5 和 6。与其中任何一个已删除节点相连的所有边也会被删除。对图中剩余的六个节点重新进行编号,以反映新的节点数量。
G = rmnode(G,[3 5 6])
G = graph with properties: Edges: [2x1 table] Nodes: [6x0 table]
添加边
使用 addedge
向 G
添加两条边。第一条边位于节点 1 和节点 5 之间,第二条边位于节点 2 和节点 5 之间。该命令将向 G.Edges
添加两个新行。
G = addedge(G,[1 2],[5 5])
G = graph with properties: Edges: [4x1 table] Nodes: [6x0 table]
删除边
使用 rmedge
删除节点 1 和节点 3 之间的边。该命令将从 G.Edges
中删除一个行。
G = rmedge(G,1,3)
G = graph with properties: Edges: [3x1 table] Nodes: [6x0 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: [1x1 table] Nodes: [2x1 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