addedge
向图添加新边
说明
示例
将两条新边添加到现有图。由于其中一条新边引用不存在的节点,addedge
会自动将所需的第四个节点添加到图。
G = graph([1 2],[2 3])
G = graph with properties: Edges: [2×1 table] Nodes: [3×0 table]
G = addedge(G,[2 1],[4 3])
G = graph with properties: Edges: [4×1 table] Nodes: [4×0 table]
创建具有加权边的有向图。
G = digraph({'A' 'B' 'C'}, {'D' 'C' 'D'}, [10 20 45])
G = digraph with properties: Edges: [3×2 table] Nodes: [4×1 table]
将三条新加权边添加到图。addedge
还会自动将所需的任何新节点添加到图。
G = addedge(G, {'A' 'D' 'E'}, {'E' 'B' 'D'}, [5 30 5])
G = digraph with properties: Edges: [6×2 table] Nodes: [5×1 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: [7×3 table] Nodes: [8×0 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: [9×3 table] Nodes: [9×0 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
中位置类似的元素指定图中边的源和目标节点。
如果使用图中尚未出现的节点名称添加边,则 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
是标量或行向量,则会通过标量扩充来为s
和t
中的每条边指定权重。如果
w
为列向量,则它的长度必须与s(:)
和t(:)
相同。如果
w
是矩阵,则它包含的元素数量必须与s(:)
和t(:)
相同。
示例: G = addedge(G, [2 2], [4 5], [1 100]')
添加两条边,其权重分别为 1
和 100
。
数据类型: single
| double
复数支持: 是
边的属性,以表的形式指定。如果您没有通过指定 s
和 t
来定义要添加的图形边,则 EdgeTable
中的第一个变量必须是名为 EndNodes
的两列矩阵,用来定义要添加的图形边。
EdgeTable
必须具有以下常规属性:
对于加权图,
EdgeTable
必须包含变量Weight
。如果图有其他边属性,则
EdgeTable
必须包含与G.Edges
相同的所有变量以确保兼容性。EdgeTable
中变量的顺序必须与G.Edges
中变量的顺序相同。
数据类型: table
扩展功能
用法说明和限制:
节点对组
s
和t
必须为节点索引。不支持节点名称。创建图对象后,无法向
G.Edges
表中添加新变量或新列。当您在 MATLAB® 中构造
graph
或digraph
对象并将其传递给使用 MATLAB Coder™ 生成的 MEX 函数时,您无法向图对象添加边。边属性必须为可以在代码生成中存储为可变大小数组的数据类型。例如,数据类型不能为以下任一项:
字符串数组
每个元胞具有不同大小的元胞数组
使用
cellstr
转换的字符向量元胞数组用户定义的类
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
版本历史记录
在 R2015b 中推出增加了对分类节点名称作为输入的支持。这使您能够使用作为分类导入的数据来创建图形,而无需进行数据类型操作。
graph
、digraph
、addedge
在遇到重复边时不会再发生错误,在这种情况下,重复边会添加到图中,从而得到一个多重图。可以使用 ismultigraph
函数来检测这种情况,simplify
提供了一种去除多余边的简单方法。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)