addedge
向图添加新边
说明
示例
将边添加到图
将两条新边添加到现有图。由于其中一条新边引用不存在的节点,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]
将具有属性的边添加到图
创建一个图,该图的边具有属性 Weight
和 Power
。使用边表创建图。
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
输入参数
s,t
— 节点对组(以单独参量指定)
节点索引 | 节点名称
节点对组,指定为单独的节点索引或节点名称参量。s
和 t
中位置类似的元素指定图中边的源和目标节点。
如果使用图中尚未出现的节点名称添加边,则 addedge
会将新节点名称添加到 g.Nodes.Name
表的底部。如果 s
和 t
是分类数组,则 s
和 t
中的类别将用作节点名称。这可以包括不是 s
或 t
中元素的类别。
下表显示通过数值节点索引或节点名称引用一个或多个节点的不同方法。
形式 | 单一节点 | 多个节点 |
---|---|---|
节点索引 | 标量 示例: | 向量 示例: |
节点名称 | 字符向量 示例: | 字符向量元胞数组 示例: |
字符串标量 示例: | 字符串数组 示例: | |
分类数组 示例: | 分类数组 示例: |
示例: 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
— 边权重
标量 | 向量 | 矩阵
边权重,指定为标量、向量或矩阵。
如果
w
是标量或行向量,则会通过标量扩充来为s
和t
中的每条边指定权重。如果
w
为列向量,则它的长度必须与s(:)
和t(:)
相同。如果
w
是矩阵,则它包含的元素数量必须与s(:)
和t(:)
相同。
示例: G = addedge(G, [2 2], [4 5], [1 100]')
添加两条边,其权重分别为 1
和 100
。
数据类型: single
| double
复数支持: 是
EdgeTable
— 边属性
表
边的属性,以表的形式指定。如果您没有通过指定 s
和 t
来定义要添加的图形边,则 EdgeTable
中的第一个变量必须是名为 EndNodes
的两列矩阵,用来定义要添加的图形边。
EdgeTable
必须具有以下常规属性:
对于加权图,
EdgeTable
必须包含变量Weight
。如果图有其他边属性,则
EdgeTable
必须包含与G.Edges
相同的所有变量以确保兼容性。EdgeTable
中变量的顺序必须与G.Edges
中变量的顺序相同。
数据类型: table
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
节点对组
s
和t
必须为节点索引。不支持节点名称。创建图对象后,无法向
G.Edges
表中添加新变量或新列。当您在 MATLAB® 中构造
graph
或digraph
对象并将其传递给使用 MATLAB Coder™ 生成的 MEX 函数时,您无法向图对象添加边。边属性必须为可以在代码生成中存储为可变大小数组的数据类型。例如,数据类型不能为以下任一项:
字符串数组
每个元胞具有不同大小的元胞数组
使用
cellstr
转换的字符向量元胞数组用户定义的类
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
版本历史记录
在 R2015b 中推出R2019a: 支持分类节点名称
增加了对分类节点名称作为输入的支持。这使您能够使用作为分类导入的数据来创建图形,而无需进行数据类型操作。
R2018a: 处理重复边时的变化
graph
、digraph
、addedge
在遇到重复边时不会再发生错误,在这种情况下,重复边会添加到图中,从而得到一个多重图。可以使用 ismultigraph
函数来检测这种情况,simplify
提供了一种去除多余边的简单方法。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)