Main Content

addedge

向图添加新边

说明

H = addedge(G,s,t) 在图 G 中的节点 st 之间添加一条边。如果 st 指定的节点在 G 中不存在,则还会添加该节点。新图 H 等价于 G,但包括新边和任何必需的新节点。

示例

H = addedge(G,s,t,w) 还对 st 之间的边指定权重 w

示例

H = addedge(G,s,t,EdgeTable) 在节点 st 之间添加由表 EdgeTable 指定属性的边。

H = addedge(G,EdgeTable) 添加由表 EdgeTable 指定属性的边。EdgeTable 输入必须能够与 G.Edges 串联。

示例

示例

全部折叠

将两条新边添加到现有图。由于其中一条新边引用不存在的节点,addedge 会自动将所需的第四个节点添加到图。

G = graph([1 2],[2 3])
G = 
  graph with properties:

    Edges: [2x1 table]
    Nodes: [3x0 table]

G = addedge(G,[2 1],[4 3])
G = 
  graph with properties:

    Edges: [4x1 table]
    Nodes: [4x0 table]

创建具有加权边的有向图。

G = digraph({'A' 'B' 'C'}, {'D' 'C' 'D'}, [10 20 45])
G = 
  digraph with properties:

    Edges: [3x2 table]
    Nodes: [4x1 table]

将三条新加权边添加到图。addedge 还会自动将所需的任何新节点添加到图。

G = addedge(G, {'A' 'D' 'E'}, {'E' 'B' 'D'}, [5 30 5])
G = 
  digraph with properties:

    Edges: [6x2 table]
    Nodes: [5x1 table]

创建一个图,该图的边具有属性 WeightPower。使用边表创建图。

EdgeTable = table([1 2; 2 3; 2 4; 2 5; 5 6; 5 7; 5 8], ...
    {'on','off','off','on','on','on','off'}',[10 20 20 10 10 10 20]', ...
    'VariableNames',{'EndNodes','Power','Weight'});
G = graph(EdgeTable)
G = 
  graph with properties:

    Edges: [7x3 table]
    Nodes: [8x0 table]

通过创建一个可与 G.Edges 串联的较小表,将两条新边添加到图。请注意,此较小表使用的变量顺序必须与 G.Edges 相同。

NewEdges = table([5 9; 3 6], {'on' 'off'}', [10 20]', ...
    'VariableNames',{'EndNodes','Power','Weight'});
G = addedge(G,NewEdges)
G = 
  graph with properties:

    Edges: [9x3 table]
    Nodes: [9x0 table]

查看图的新边列表,其中包含所添加的边。

G.Edges
ans=9×3 table
    EndNodes     Power     Weight
    ________    _______    ______

     1    2     {'on' }      10  
     2    3     {'off'}      20  
     2    4     {'off'}      20  
     2    5     {'on' }      10  
     3    6     {'off'}      20  
     5    6     {'on' }      10  
     5    7     {'on' }      10  
     5    8     {'off'}      20  
     5    9     {'on' }      10  

输入参数

全部折叠

输入图,指定为 graphdigraph 对象。可使用 graph 创建一个无向图,或使用 digraph 创建一个有向图。

示例: G = graph(1,2)

示例: G = digraph([1 2],[2 3])

节点对组,指定为单独的节点索引或节点名称参量。st 中位置类似的元素指定图中边的源和目标节点。

如果使用图中尚未出现的节点名称添加边,则 addedge 会将新节点名称添加到 g.Nodes.Name 表的底部。如果 st 是分类数组,则 st 中的类别将用作节点名称。这可以包括不是 st 中元素的类别。

下表显示通过数值节点索引或节点名称引用一个或多个节点的不同方法。

形式单一节点多个节点
节点索引

标量

示例:1

向量

示例:[1 2 3]

节点名称

字符向量

示例:'A'

字符向量元胞数组

示例:{'A' 'B' 'C'}

字符串标量

示例:"A"

字符串数组

示例:["A" "B" "C"]

分类数组

示例:categorical("A")

分类数组

示例:categorical(["A" "B" "C"])

示例: G = addedge(G, [1 2], [3 4]) 向图中添加两条边:一条边是从节点 1 到节点 3,另一条边是从节点 2 到节点 4

示例: G = addedge(G, {'a' 'a'; 'b' 'c'}, {'b' 'c'; 'c' 'e'}) 向图中添加四条边,其中第一条是从 'a''b'

边权重,指定为标量、向量或矩阵。

  • 如果 w 是标量或行向量,则会通过标量扩充来为 st 中的每条边指定权重。

  • 如果 w 为列向量,则它的长度必须与 s(:)t(:) 相同。

  • 如果 w 是矩阵,则它包含的元素数量必须与 s(:)t(:) 相同。

示例: G = addedge(G, [2 2], [4 5], [1 100]') 添加两条边,其权重分别为 1100

数据类型: single | double
复数支持:

边的属性,以表的形式指定。如果您没有通过指定 st 来定义要添加的图形边,则 EdgeTable 中的第一个变量必须是名为 EndNodes 的两列矩阵,用来定义要添加的图形边。

EdgeTable 必须具有以下常规属性:

  • 对于加权图,EdgeTable 必须包含变量 Weight

  • 如果图有其他边属性,则 EdgeTable 必须包含与 G.Edges 相同的所有变量以确保兼容性。

  • EdgeTable 中变量的顺序必须与 G.Edges 中变量的顺序相同。

数据类型: table

输出参量

全部折叠

输出图,以 graphdigraph 对象形式返回。

扩展功能

基于线程的环境
使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

版本历史记录

在 R2015b 中推出

全部展开