图形

具有无向边的图

描述

图形对象表示无向图,它具有连接节点的无方向边。创建图形对象之后,可以通过使用对象函数对对象执行查询来进一步了解图形。例如,您可以添加或删除节点或边,确定两个节点之间的最短路径,或定位特定的节点或边。

G =图([1 1],[2 3]);E = G.Edges G = addedge(G,2,3)G = addnode的(G,4)图(G)

创建

描述

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

G=图(一种使用方形创建一个加权图,对称邻接矩阵,一种。在每个非零项的位置一种指定了图中的边,并且边的权重等于项的值。例如,如果A(2,1)= 10, 然后G含有重量为10节点2和节点1之间的边缘。

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

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

G=图(一种___类型指定的邻接矩阵的三角在构造图使用。您必须指定一种也可以指定节点名要么NodeTable。只使用的上侧或下三角一种构造图,类型可以是'上'要么'降低'

G=图(一种___'omitselfloops')忽略的对角元素一种并返回,没有任何自我循环的图表。您可以在前面的语法使用任何输入参数的组合。

G=图(S,T指定图中的边(S,T)在节点对。小号Ť可以指定节点索引或节点名。

G=图(S,T权重也指定数组的边权值权重

G=图(S,T权重节点名指定节点使用字符载体或字符串数​​组的单元阵列的名称,节点名小号Ť不能包含不在节点名称节点名

G=图(S,T权重NodeTable使用表指定节点名(可能还有其他节点属性),NodeTable。指定使用节点名称的名字表变量。小号Ť不能包含不在节点名称NodeTable

G=图(S,T权重NUM指定用数字标量图中的节点的数目NUM

G=图(S,T___'omitselfloops')不添加任何自循环的图形。也就是说,任何ķ即满足s (k) = = t (k)被忽略。您可以在前面的语法使用任何输入参数的组合。

G=图(S,TEdgeTable___用来指定一个边缘表属性,而不是指定权重。该EdgeTable输入必须是一个表,其中每个对应的元素对都有一行小号Ť。使用该表指定变量的边权重重量

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

G=图(EdgeTableNodeTable使用表进一步指定图形节点的名称(以及可能的其它属性),NodeTable

G=图(EdgeTable___'omitselfloops')不添加自循环的图形。也就是说,任何ķ即满足EdgeTable.EndNodes(K,1)== EdgeTable.EndNodes(K,2)被忽略。您必须指定EdgeTable也可以指定NodeTable

输入参数

展开全部

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

主对角线上的非零元素一种指定自循环,或连接到本身具有边缘节点。使用'omitselfloops'输入选择忽略对角线项。

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

例:A = [0 1 5;1 0 0;5 0 0]描述了具有三个节点和两个边缘的曲线图。节点1和节点2之间的边缘的重1和节点1和节点3之间的边的重

数据类型:||合乎逻辑

节点名,指定为字符向量或串阵列的单元阵列。节点名长度必须等于numnodes(G)因此,它包含了图中每个节点的非空,唯一的名称。

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

数据类型:细胞|字符串

键入邻接矩阵的,指定为'上'要么'降低'

例:G =图表(A, '上部')仅使用的上三角一种构造图,G

节点对指定为节点指数或节点名称。图形创建在相应的节点之间的边小号Ť,它们必须都是数值型的,或者都是字符向量、字符向量的单元数组、字符串数组或分类数组。在所有情况下,小号Ť必须有相同数目的元素。

  • 如果小号Ť是数值,则它们对应于图中的节点的索引。数字节点索引必须是正整数大于或等于1。

  • 如果小号Ť是字符向量,特征向量的单元阵列,或串阵列,然后它们指定的节点的名称。该节点该图的属性是一个含有一个表的名字与节点名称的变量,G.Nodes.Name

  • 如果小号Ť是范畴数组,那么范畴在小号Ť被用作在图中的节点名称。这可以包括不在元件类别小号要么Ť

  • 如果小号Ť指定相同的两个节点之间的多个边缘,则结果为一复印印刷

这个表显示了通过一个或多个节点的数字节点索引或节点名称来引用它们的不同方法。

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

纯量

例:1

向量

例:[1 2 3]

节点名称

特征向量

例:“一个”

字符向量的单元阵列

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

字符串标量

例:“一种”

String数组

例:[ “A” “B” “C”]

分类数组

例:分类( “A”)

分类数组

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

例:G =图([1 2 3],[2 4 5])创建具有五个节点和三个边缘的曲线图。

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

边权,指定为一个标量,矢量,矩阵或多维数组。权重元素数目必须与?相同的标量或数组小号Ť

图形存储边权作为重量变量G.Edges属性表。要添加或更改权重创建图形之后,您可以直接修改表变量,例如,G.Edges.Weight= [25 50 75]'

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

例:G =图([1 2],[2 3],[100 200])创建具有三个节点和两条边的图。边的权值为100200

数据类型:|

图中的节点,指定为正标量整数的数目。NUM必须大于或等于最大元素小号Ť

例:G =图([1 2],[2 3],[],5)创建一个具有三个连接的节点和两个隔离的节点的图。

边缘信息表。如果您没有指定小号Ť,则在所述第一可变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表,其中中号是图中的边缘的数量。

  • 到新的边缘属性添加到图中,创建在一个新的可变边缘表格

  • 若要从图形中添加或删除边,请使用addedge要么rmedge对象的功能。

例:G.Edges返回一个表格列出了图中的边

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

例:G.Edges.Weight = [10 20 30 55]”为图形指定新的边权值。

例:G.Edges。ñ要么mWeight = G.Edges.Weight/sum(G.Edges.Weight)增加了一个新的边缘属性来包含的边缘的权重标准化的表。

数据类型:

图的节点,返回一个表。默认情况下,这是一个空ñ-通过-0表,其中ñ是图中的节点的数目。

  • 若要向图形添加新节点属性,请在节点表格

  • 从图表添加或删除节点,使用addnode的要么rmnode对象的功能。

例:G.Nodes返回一个表格,列出了图的节点属性。该表默认为空。

例:G.Nodes.Names = { '蒙大拿', '纽约', '华盛顿' 号, '加利福尼亚'}”通过添加变量将节点名添加到图中名称节点表格

例:G.Nodes.WiFi =逻辑([1 0 0 1 1]')添加变量无线上网节点表格此属性指定某些机场具有无线internet覆盖。

数据类型:

对象函数

展开全部

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

例子

全部收缩

创建一个图形具有三个节点和两个边缘对象。一个边缘节点1和节点2之间,而另一个边缘节点1和节点3之间。

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

查看图形的边表。

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表EndNodes ______________ { 'A'} { 'B'} { 'A'} { 'C'}

您可以添加或修改其他变量节点边缘用于描述图节点或边的属性的表。但是,您不能通过修改这些表来直接更改图中的节点或边的数量。相反,使用addedgermedgeaddnode的,或rmnode函数来修改在图中的节点或边的数量。

例如,添加的边缘到节点2和3之间的图形和查看新的边缘列表。

G = addedge(G,2,3)
G =图表与属性:边缘:[3X1表]节点:[3X1表]
G.Edges
ANS =3×1表EndNodes ______________ { 'A'} { 'B'} { 'A'} { 'C'} { 'B'} { 'C'}

创建一个对称邻接矩阵,一种中,创建的顺序4.使用一个逻辑邻接矩阵来创建没有重量的曲线图的完整图。

A =酮(4) -  DIAG([1 1 1 1])
A =4×40 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0
G =曲线图(A〜= 0)
属性图:边:[6x1表]节点:[4x0表]

查看图形的边缘列表。

G.Edges
ANS =6×1表结:1 2 1 3 1 4 2 3 2 2 4 3 3 4

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

A = triu(魔术(4))
A =4×416 2 3 13 0 11 10 8 0 6 12 0 0 0 1

使用邻接矩阵创建具有命名节点的图。指定'omitselfloops'要忽略的对角线元素一种,并指定类型'上'以表明一种是上三角。

名称= {'α'“测试版”“伽马”'三角洲'};G =曲线图(A,名称,'上''omitselfloops'
G =图表与属性:边缘:[6X2表]节点:[4X1表]

查看边缘和节点信息。

G.Edges
ANS =6×2表EndNodes重量______________________ ______ { '阿尔法'} { '测试'} 2 { '阿尔法'} { 'γ'} 3 { '阿尔法'} { '增量'} 13 { '测试'} { 'γ'} 10 {”的β”} { '增量'} 8 { 'γ'} { '增量'} 12
G.Nodes
ANS =4×1表名字_____{“α”}{“beta”}{“伽马”}{“δ”}

创建并绘制使用每个边缘的端部的节点的列表的立方体图。

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

创建并绘制使用每个边缘的端部的节点的列表的立方体图。指定节点名称和边权作为单独的输入。

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

创建使用每个边缘的端部的节点的列表的加权曲线图。指定该图形应包含总共10个节点的。

S = [1 1 1 1 1];T = [1 2 3 4 5 6];权重= [5 5 5 6 9];G =图表(S,T,重量,10)
G =图表与属性:边缘:[5×2表]节点:[10x0表]

绘制图表。额外的节点被从主连接的组件断开。

图(G)

创建一个空的图形对象,G

G =曲线图。

添加三个节点和三个边的图形。在相应的条目小号Ť定义图中边的端节点。addedge自动将适当的节点图,如果它们不存在。

S = [1 2 1];T = [2 3 3];G = addedge(G,S,T)
G =图表与属性:边缘:[3X1表]节点:[3x0表]

查看边缘列表。每一行都描述了图中的一条边。

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

为了获得最佳性能,可以使用对图形。对于大型图,在循环中添加节点或边可能很慢。

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

S = [1 1 1 2 3];T = [1 2 3 4 3 4];权重= [6 6.5 7 11.5 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”“申”'FRA'}';COUNTRY_CODE = {'1''44''49''33'}';NodeTable =表(姓名,COUNTRY_CODE,“VariableNames”{'名称''国家'})
NodeTable =4×2表名称国家_______ { 'USA'} { '1'} { 'GBR'} { '44'} { '申'} { '49'} { 'FRA'} { '33'}

创建使用节点和边缘表的曲线图。使用国家代码为节点和边缘的标签绘制曲线图。

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

兼容性注意事项

展开全部

行为R2018a改变

介绍了在R2015b