Main Content

修改现有图的节点和边

此示例演示如何使用 addedgermedgeaddnodermnodefindedgefindnodesubgraph 函数访问和修改 graphdigraph 对象中的节点和/或边。

添加节点

创建一个包含四个节点和四条边的图。st 中的对应元素用于指定每条图边的结束节点。

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 分别为 56789 的不相连节点。

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]

添加边

使用 addedgeG 添加两条边。第一条边位于节点 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 之间的边的边索引。边索引 eiG.Edges 中的行号。

ei = findedge(G,1,5)
ei = 
2

确定节点索引

在图中添加节点名称,然后确定节点 'd' 的节点索引。数值节点索引 niG.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'}

通过变量编辑器修改节点和边表格

图对象的节点和边信息包含在 NodesEdges 这两个属性中。这两个属性都是包含变量的表,用于说明图中的节点和边的特性。由于 NodesEdges 都是表,因此您可以使用变量编辑器以交互方式查看或编辑这些表。您不能使用变量编辑器添加或删除节点或边,也不能编辑 Edges 表的 EndNodes 属性。变量编辑器适用于管理 NodesEdges 表中的额外节点和边属性。有关详细信息,请参阅 创建和编辑变量

另请参阅

| | | | | | | |

相关主题