主要内容

与无向图的边缘

描述

对象是无向图,越来越不连接节点的边。创建一个图形对象后,您可以了解更多关于图形通过使用对象函数来执行查询对象。例如,您可以添加或删除节点或边缘,确定两个节点之间的最短路径,或定位一个特定的节点或边缘。

图G = ([1], [2 3]);e = G。边缘G = addedge (G, 2、3)G= addnode(G,4) plot(G)

创建

描述

例子

G=图创建一个空无向图对象,G,没有节点或边缘。

例子

G=图(一个)使用一个正方形,创建一个图形对称邻接矩阵,一个

  • 对于逻辑邻接矩阵,图没有边。

  • 逻辑邻接矩阵,图的边的权值。每个非零项的位置一个指定图形的边缘,边缘的重量等于输入的值。例如,如果(2,1)= 10,然后G包含一个节点2和节点之间的边1重量为10。

例子

G=图(一个,节点名)另外指定节点的名称。元素的数量节点名必须等于大小(1)

G=图(一个,NodeTable)指定节点名(可能还有其他节点属性)使用一个表,NodeTable。表必须有相同的行数一个。使用表变量指定节点名称的名字

例子

G=图(一个,___,类型)指定一个三角形的构造图的邻接矩阵使用。您必须指定一个和选择可以指定节点名NodeTable。只使用上部或下部的三角形一个构建图,类型可以是“上”“低”

例子

G=图(一个,___,' omitselfloops ')忽略了对角线的元素一个没有任何self-loops并返回一个图。您可以使用任何输入参数的组合在以前的语法。

例子

G=图(s t)指定图像边缘(s, t)在节点对。年代t可以指定节点指标或节点的名称。各样的边缘G首先由源节点,然后通过目标节点。如果你有边缘属性相同的顺序年代t,使用语法图G = (s t EdgeTable)通过在边缘属性使他们以同样的方式排序在结果图。

例子

G=图(s t,权重)还指定了边的权值的数组权重

例子

G=图(s t,权重,节点名)指定节点的名称使用特征向量的细胞数组或字符串数组,节点名年代t不是不能包含节点名节点名

G=图(s t,权重,NodeTable)指定节点名(可能还有其他节点属性)使用一个表,NodeTable。使用指定的节点名称的名字表变量。年代t不是不能包含节点名NodeTable

例子

G=图(s t,权重,全国矿工工会)图中指定的节点数量与数字标量全国矿工工会

G=图(s t,___,' omitselfloops ')不添加任何self-loops图。也就是说,任何k满足s (k) = = t (k)将被忽略。您可以使用任何输入参数的组合在以前的语法。

G=图(s t,EdgeTable,___)使用一个表来指定边缘而不是指定属性权重。的EdgeTable输入必须与每一行对应一个表中的元素年代t。指定边使用表变量重量

例子

G=图(EdgeTable)使用的表EdgeTable定义图。这个语法,第一个变量EdgeTable必须指定EndNodes,它必须是一个两列数组定义边缘图的列表。

例子

G=图(EdgeTable,NodeTable)另外指定了名称(可能还有其他属性)图的节点使用一个表,NodeTable

G=图(EdgeTable,___,' omitselfloops ')不添加self-loops图。也就是说,任何k满足EdgeTable.EndNodes (k, 1) = = EdgeTable.EndNodes (k, 2)将被忽略。您必须指定EdgeTable和选择可以指定NodeTable

输入参数

全部展开

邻接矩阵,指定为一个完整的或稀疏,数字矩阵。的条目一个指定的网络连接(边缘)之间的节点图。每个非零项的位置一个指定两个节点之间的边。该条目的值提供了边缘的重量。一个逻辑在未加权图的邻接矩阵结果。

非零的主对角线上的条目一个指定self-loops,或节点连接到自己的优势。使用“omitselfloops”输入选项来忽略对角条目。

一个必须是对称的,除非类型输入指定。使用issymmetric确认矩阵对称。对于三角邻接矩阵,指定类型只使用的上部或下部的三角形。

例子:一个= [0 1 5;1 0 0;5 0 0)描述了一个包含3个节点的图和两条边。之间的边缘节点1和节点2的重量1,之间的边缘节点1和节点3的重量5

数据类型:||逻辑

节点名称,指定为特征向量的细胞数组或字符串数组。节点名一定长度等于什么numnodes (G)它包含一个非空的,图中的每个节点的唯一名称。

例子:图G = (A, {n1, n2, n3的})指定三个节点名称3 x3的邻接矩阵,一个

数据类型:细胞|字符串

邻接矩阵类型,指定为“上”“低”

例子:图G = (A,“上”)只使用上的三角形一个构建图,G

节点对,指数或节点名称指定为节点。创建相应的节点之间的边年代t,必须是数字,或者都是特征向量,细胞特征向量数组,字符串数组,或分类数组。在所有情况下,年代t必须有相同数量的元素。

  • 如果年代t是数字,然后对应图节点的索引。数字节点索引必须是正整数大于或等于1。

  • 如果年代t是细胞阵列的性格特征向量,向量,或字符串数组,然后指定节点的名称。的节点属性图的是一个包含一个表的名字变量节点名称,G.Nodes.Name

  • 如果年代t的类别,分类数组吗年代t作为图中节点的名称。这可以包括类别不元素年代t

  • 如果年代t指定多个相同的两个节点之间的边,然后结果是一个油印

这个表格展示了不同的方法来引用一个或多个节点通过他们的指数数字节点或节点名。

形式 单独的节点 多个节点
节点索引

标量

例子:1

向量

例子:(1 2 3)

节点名称

特征向量

例子:“一个”

单元阵列的特征向量

例子:{“A”“B”“C”}

字符串标量

例子:“一个”

字符串数组

例子:(“A”“B”“C”)

分类数组

例子:分类(“”)

分类数组

例子:分类([“A”“B”“C”))

例子:图G = ((1 2 3) (2 4 5))创建一个图有5个节点和三条边。

例子:图G =({“波士顿”“纽约”“华盛顿特区},{“纽约”的新泽西的匹兹堡})创建一个图有5个命名节点和三条边。

边的权值,指定为一个标量、向量矩阵,或多维数组。权重必须是一个标量或数组相同数量的元素年代t

商店的边的权值重量变量G.Edges属性表。添加或更改重量后创建一个图,你可以直接修改表变量,例如,G.Edges.Weight= [25 50 75]'

如果您指定权重作为一个空数组[],那么它将被忽略。

例子:图G = (2 [1], [2 3], [100 - 200])创建一个包含3个节点的图和两条边。边的权重One hundred.200年

数据类型:|

图的节点数量,指定为一个积极的标量整数。全国矿工工会必须大于或等于最大的元素年代t

例子:图G = (2 [1], [2 3], [], 5)创建一个图有三个连接节点和两个孤立节点。

边缘信息的表。如果你不指定年代t,然后第一个变量EdgeTable需要一个两列的矩阵,单元阵列的特征向量,或字符串数组叫什么EndNodes定义图的边缘。边的权值,使用变量重量,因为这表变量名称使用一些图形功能。如果有一个变量重量,那么它必须是一个数字列向量。看到构建一个桌子上的更多信息。

创建一个图表后,查询边缘信息表使用G.Edges

例子:EdgeTable =表([1 2;2 3;3 5;4 5],VariableNames, {' EndNodes '})

数据类型:

表的节点信息。NodeTable可以包含任意数量的变量来描述属性图的节点。节点名称,使用变量的名字,因为这个变量名是用一些图形功能。如果有一个变量的名字,那么它必须是一个单元阵列特征向量数组或字符串在每一行中指定一个唯一的名称。看到构建一个桌子上的更多信息。

创建图形后,查询的节点信息表使用G.Nodes

例子:NodeTable =表({' a ';“b”;“c”;' d '}, VariableNames,{'名字'})

数据类型:

属性

全部展开

边的图,作为一个表返回。在默认情况下这是一个——- - - - - -1表,图中边的数量。在边缘G.Edges.EndNodes由源节点排序第一,然后通过目标节点。

  • 添加新的边缘属性图,创建一个新的变量边缘表。

  • 从图,添加或删除边使用addedgermedge对象的功能。

例子:G.Edges返回一个表清单中的边缘图

例子:G.Edges.Weight返回一个数字的边的权值向量。

例子:G.Edges.Weight= [10 20 30 55]'指定新边图。

例子:G.Edges。N或mWeight = G.Edges.Weight/sum(G.Edges.Weight)添加一个新的边缘属性包含边缘的归一化权重表。

数据类型:

节点图,作为一个表返回。在默认情况下这是一个空的N——- - - - - -0表,N图中节点的数目。

  • 添加新节点属性图,创建一个新的变量节点表。

  • 从图,添加或删除节点使用addnodermnode对象的功能。

例子:G.Nodes返回一个表清单图的节点属性。默认情况下这个表是空的。

例子:G.Nodes.Name年代= {'Montana', 'New York', 'Washington', 'California'}'将节点名添加到图通过添加变量的名字节点表。

例子:G.Nodes。无线网络= logical([1 0 0 1 1]')添加变量无线网络节点表。这个属性指定某些机场无线网络覆盖。

数据类型:

对象的功能

全部展开

addedge 添加新边缘图
rmedge 把边缘从图
addnode 添加新节点图
rmnode 删除节点图
findedge 定位在图
findnode 定位节点图
numedges 图的边数
numnodes 图中的节点数量
edgecount 两个节点之间的边数
reordernodes 重新排序图节点
子图 提取子图
中心 测量节点的重要性
conncomp 连通图组件
biconncomp 双连通图组件
bctree Block-cut树图
isisomorphic 判断两个图是同构的
同构 计算两个图形之间的同构
ismultigraph 确定图有多个边缘
简化 减少多重图简单的图
bfsearch 图广度优先搜索
dfsearch 图深度优先搜索
shortestpath 两个单节点之间的最短路径
shortestpathtree 最短路径树的节点
距离 所有节点对的最短路径距离
maxflow 最大流量图
minspantree 图的最小生成树
allpaths 找到两个图节点之间的所有路径
hascycles 确定图是否包含周期
allcycles 找到所有周期图
cyclebasis 基本周期图的基础
邻接 图的邻接矩阵
发病率 图的关联矩阵
拉普拉斯算子 图拉普拉斯算子的矩阵
学位 度图节点
邻居 图节点的邻居
最近的 最近的邻居内半径
outedges 边从节点
情节 图的节点和边

例子

全部折叠

创建一个对象有三个节点和两条边。之间的一个边缘节点1和节点2和节点1和节点之间的另一个优势是3。

图G = ([1], [2 3])
图G =属性:边缘:[2 x1表]节点:[3 x0表)

查看表图的边缘。

G.Edges
ans =2×1表EndNodes ________ 1 2 1 3

节点名称添加到图表,然后查看新节点和边表。现在每条边表示的最终节点使用他们的节点名称。

G.Nodes.Name= {“一个”“B”“C”}';G.Nodes
ans =3×1表名字_____ {A} {B} {' C '}
G.Edges
ans =2×1表{A} EndNodes * * * {B} {A} {' C '}

您可以添加或修改额外变量节点边缘表来描述属性图的节点或边缘。然而,您不能直接更改图中节点或边的数量通过修改这些表。相反,使用addedge,rmedge,addnode,或rmnode功能修改节点或边的数量在一个图。

例如,添加一个边缘节点2和3之间的图和列表视图的新优势。

G = addedge (G, 2、3)
图G =属性:边缘:[3 x1表]节点:[3 x1表)
G.Edges
ans =3×1表{A} EndNodes * * * {B} {A} {' C '} {B} {' C '}

创建一个对称邻接矩阵,一个,创建一个完全图4。使用一个逻辑邻接矩阵来创建一个图没有重量。

= 1(4)-诊断接头([1 1 1 1])
一个=4×40 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0
图G = (~ = 0)
图G =属性:边缘:x1表[6]节点:[4 x0表)

查看图的边列表。

G.Edges
ans =6×1表EndNodes ________ 1 2 3 1 4 2 3 4 2 3 4

创建一个上三角邻接矩阵。

一个= triu(魔法(4))
一个=4×416 2 3 13 0 11 10 8 0 0 6 12 0 0 0 1)

创建一个名为节点的图,使用邻接矩阵。指定“omitselfloops”忽略的对角线上的条目一个,并指定类型作为“上”表明一个是上三角。

名称= {“α”“β”“伽马”“δ”};图G =(名称,“上”,“omitselfloops”)
图G =属性:边缘:[6 x2表]节点:[4 x1表)

查看边和节点信息。

G.Edges
ans =6×2表EndNodes重量______________________ ______{“α”}{“beta”} 2{“α”}{“伽马”}3{“α”}{“δ”}13 {“beta”}{“伽马”}10 {“beta”}{“δ”}8{“伽马”}{“δ”}12
G.Nodes
ans =4×1表名字_____{“α”}{“beta”}{“伽马”}{“δ”}

创建和绘制一个立方体图使用每个边缘的结束节点的列表。

s = [1 1 1 2 3 2 3 4 5 5 6 7);t = [2 4 8 3 7 4 6 5 6 8 7 8];图G = (s, t)
图G =属性:边缘:x1表[12]节点:[8 x0表)
情节(G)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

创建和绘制一个立方体图使用每个边缘的结束节点的列表。指定节点名和边作为单独的输入。

s = [1 1 1 2 3 2 3 4 5 5 6 7);t = [2 4 8 3 7 4 6 5 6 8 7 8];重量= [10 10 1 1 1 1 12 12 12 12);名称= {“一个”“B”“C”' D '“E”“F”‘G’“H”};图G = (s t重量、名称)
图G =属性:边缘:[12 x2表]节点:x1表[8]
情节(G,“EdgeLabel”G.Edges.Weight)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

使用列表创建一个加权图的每条边的节点。指定的图应该包含共有10个节点。

s = (1 1 1 1 1);t = (2 3 4 5 6);重量= (5 5 5 6 9);图G = (s t重量、10)
图G =属性:边缘:[5 x2表]节点:[10 x0表)

画出图。额外的节点与主连接组件。

情节(G)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

创建一个空图形对象,G

G =图;

添加三个节点和三条边的图。相应的条目年代t定义结束节点图的边缘。addedge自动添加适当的节点图,如果他们不是已经存在。

s = [1 2 1];t = [2 3 3];G = addedge (G s t)
图G =属性:边缘:[3 x1表]节点:[3 x0表)

视图列表。每一行描述了图像的边缘。

G.Edges
ans =3×1表EndNodes ________ 1 2 3 2 3

为了获得最佳的性能,构造图一次性使用单一调用。添加节点或边缘在一个循环中可以缓慢的大型图表。

创建一个边缘表包含变量EndNodes,重量,代码。然后创建一个节点表,其中包含的变量的名字国家。在每个表指定的变量属性图的节点和边。

s = [1 1 1 2 3];t = (2 3 4 3 4);重量= (11.5 6 6.5 7 17)';代码= {“1/44”“1/49”“1/33”“44/49”“49/33”}';EdgeTable =表([s ' t '],重量、代码,“VariableNames”,{“EndNodes”“重量”“代码”})
EdgeTable =5×3表EndNodes重量代码________ ________ _____ 1 2 6 {“1/44”}1 3 6.5 {“1/49”}1 4 7 {“1/33”}2 3 11.5 {“44/49”}3 4 17 {“49/33”}
名称= {“美国”“GBR”“德吴”联邦铁路局的}';country_code = {' 1 '“44”“49”“33”}';NodeTable =表(名称、country_code“VariableNames”,{“名字”“国家”})
NodeTable =4×2表名字国家_________ _________{‘美国’}{1}{的GBR}{“44”}{‘德吴}{“49”}{联邦铁路局的}{“33”}

使用节点和边表创建一个图表。画出图使用节点和边缘的国家代码标签。

图G = (EdgeTable NodeTable);情节(G,“NodeLabel”G.Nodes.Country,“EdgeLabel”G.Edges.Code)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

扩展功能

版本历史

介绍了R2015b

全部展开