主要内容

图形

具有无向边的图表

描述

图形对象代表无向图形,其具有连接节点的方向边缘。创建图形对象后,您可以通过使用对象对对象执行查询来了解图表的更多信息。例如,您可以添加或删除节点或边,确定两个节点之间的最短路径,或查找特定节点或边缘。

g =图([1 1],[2 3]);e = g.edges g =添加(g,2,3)g = addnode(g,4)plot(g)

创建

描述

例子

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

例子

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

例子

G=图形(一种Nodenames.另外指定节点名称。元素的数量Nodenames.必须等于尺寸(a,1)

G=图形(一种n使用表格指定节点名称(以及可能的其他节点属性),n。表必须具有相同数量的行一种。使用表变量指定节点名称名称

例子

G=图形(一种___类型指定用于构造图形的邻接矩阵的三角形。您必须指定一种并且可选择可以指定Nodenames.或者n。仅使用鞋面或下三角形一种要构建图形,类型可以是'上'或者'降低'

例子

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

例子

G=图形(英石指定图形边缘(英石)在节点对中。S.T.可以指定节点索引或节点名称。

例子

G=图形(英石重量还指定了与数组的边缘权重重量

例子

G=图形(英石重量Nodenames.使用字符向量或字符串数​​组的单元格数组指定节点名称,Nodenames.S.T.不能包含不在的节点名称Nodenames.

G=图形(英石重量n使用表格指定节点名称(以及可能的其他节点属性),n。使用该节点名称指定节点名称名称表变量。S.T.不能包含不在的节点名称n

例子

G=图形(英石重量数字使用数字标量指定图表中的节点数数字

G=图形(英石___,'omitselfloops')不向图表添加任何自循环。也就是说,任何K.满足s(k)== t(k)被忽略了。您可以在以前的语法中使用任何输入参数组合。

G=图形(英石eDébable.___使用表格指定边缘属性而不是指定重量。这eDébable.输入必须是一个表,其中每个对应的元素对S.T.。使用表变量指定边缘权重重量

例子

G=图形(eDébable.使用表格eDébable.定义图形。使用此语法,第一个变量eDébable.必须命名endnode.,它必须是定义图形边缘列表的两列阵列。

例子

G=图形(eDébable.n另外,使用表格指定图形节点的名称(和可能的其他属性),n

G=图形(eDébable.___,'omitselfloops')不向图中添加自循环。也就是说,任何K.满足eDgetable.endnodes(k,1)== Edgetable.endnodes(k,2)被忽略了。您必须指定eDébable.并且可选择可以指定n

输入参数

展开全部

邻接矩阵,指定为满或稀疏,数字矩阵。参赛作品一种在图形的节点之间指定连接(边缘)的网络。每个非零条目的位置一种指定两个节点之间的边缘。该条目的值提供了边缘权重。逻辑邻接矩阵导致一个未加权的图表。

主要对角线上的非零条目一种指定自我环或者与边缘连接的节点。使用'omitselfloops'输入选项以忽略对角线条目。

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

例子:a = [0 1 5;1 0 0;5 0 0]描述具有三个节点和两个边的图表。节点1和节点2之间的边缘具有重量1,节点1和节点3之间的边缘具有重量5.

数据类型:单身的|双倍的|逻辑

节点名称,指定为字符向量或字符串数​​组的单元格数组。Nodenames.必须具有等于的长度numnodes(g)这样它包含图表中每个节点的非空白唯一名称。

例子:g =图表(a,{'n1','n2','n3'})指定3×3邻接矩阵的三个节点名称,一种

数据类型:细胞|细绳

邻接矩阵类型,指定为'上'或者'降低'

例子:g =图(a,'上')仅使用上三角形一种要构建图形,G

节点对,指定为节点索引或节点名称。图形在相应节点之间创建边缘S.T.,它必须是数字,也必须是字符向量,字符向量,字符串阵列或分类阵列的单元格阵列。在所有情况下,S.T.必须具有相同数量的元素。

  • 如果S.T.是数字,然后它们对应于图形节点的索引。数字节点索引必须是大于或等于1的正整数。

  • 如果S.T.是字符向量,字符向量或字符串阵列的单元格阵列,然后它们为节点指定名称。这节点图表的属性是包含a的表名称变量与节点名称,g.nodes.name.

  • 如果S.T.是分类阵列,然后是类别S.T.用作图中的节点名称。这可以包括不属于元素的类别S.或者T.

  • 如果S.T.在同一个两个节点之间指定多个边缘,那么结果是一个多金属

此表显示了通过其数字节点索引或其节点名称的不同方式来引用一个或多个节点。

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

标量子

例子:1

向量

例子:[1 2 3]

节点名称

字符向量

例子:'一种'

字符向量的单元格阵列

例子:{'a''b''c'}

字符串标量

例子:“一种”

字符串数组

例子:[“a”“b”“c”]

分类阵列

例子:分类(“A”)

分类阵列

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

例子:g =图表([1 2 3],[2 4 5])创建一个带有五个节点和三个边的图表。

例子:g = graph({'boston''''华盛顿州'D.C'},{纽约''新泽西州''匹兹堡'})创建具有五个名为Nodes和三个边的图形。

边缘权重,指定为标量,矢量,矩阵或多维数组。重量必须是标量或具有相同数量的元素数组S.T.

图形将边缘重量存储为一个重量变量在G.Edges.物业桌。要在创建图形后添加或更改权重,您可以直接修改表变量,例如,G.edges.weight = [25 50 75]'

如果您指定重量作为空数组[],然后忽略它。

例子:g =图表([1 2],[2 3],[100 200])创建具有三个节点和两个边的图形。边缘有重量100.200.

数据类型:单身的|双倍的

图形节点的数量指定为正标量整数。数字必须大于或等于最大的元素S.T.

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

边缘信息表。如果您未指定S.T.,然后是第一个变量eDébable.需要是双列矩阵,字符向量的单元阵列,或称为字符串数组endnode.定义图形边缘。对于边缘权重,使用变量重量,由于某些图形功能使用此表变量名称。如果有变量重量,然后它必须是数字列向量。看桌子有关构造表的更多信息。

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

例子:Edgetable =表([1 2; 2 3; 3 5; 4 5],'VariaBlenames',{'Endnodes'})

数据类型:桌子

节点信息表。n可以包含任意数量的变量来描述图形节点的属性。对于节点名称,请使用变量名称,由于某些图形功能使用此变量名称。如果有变量名称,然后它必须是字符向量或字符串数​​组的单元格数组,指定每行中的唯一名称。看桌子有关构造表的更多信息。

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

例子:nodetable =表({'a';'b';'c';'d'},'variablenames',{'name'})

数据类型:桌子

输出参数

展开全部

无向图形,返回为一个图形目的。

特性

展开全部

图的边缘,作为表返回。默认情况下,这是一个m-经过-1表,其中m是图中的边的数量。

  • 要在图形中添加新的边缘属性,请在此处创建一个新变量边缘桌子。

  • 从图中添加或删除边缘,使用或者rmedge.对象功能。

例子:G.Edges.返回列出图中边缘的表

例子:G.edges.weight.返回边缘权重的数字矢量。

例子:G.edges.weight = [10 20 30 55]'指定图形的新边缘权重。

例子:G.edges.normweight = G.edges.weight / Sum(G.edges.weight)将新的Edge属性添加到包含边缘归一化重量的表中。

数据类型:桌子

图表节点,作为表返回。默认情况下,这是一个空的N-经过-0.表,其中N是图中的节点数量。

  • 要在图形中添加新节点属性,请在此处创建一个新变量节点桌子。

  • 要从图表中添加或删除节点,请使用addnode.或者rmnode.对象功能。

例子:G.Nodes.返回列表图表节点属性的表。默认情况下此表是空的。

例子:g.nodes.names = {'蒙大拿','纽约','华盛顿','加利福尼亚}'添加变量将节点名称添加到图表中名称到了节点桌子。

例子:g.nodes.wifi =逻辑([1 0 0 1 1]')添加变量无线上网到了节点桌子。此属性指定某些机场具有无线互联网覆盖范围。

数据类型:桌子

对象功能

展开全部

将新边沿添加到图表
rmedge. 从图中删除边缘
addnode. 将新节点添加到图表
rmnode. 从图中删除节点
查找结识 在图中找到边缘
FindNode. 在图中找到节点
numedges. 图中的边数
numnodes. 图中的节点数量
edgecount. 两个节点之间的边数
reordernodes. 重新排序图形节点
sub 提取子图
BFSearch. 宽度第一图搜索
dfsearch. 深度第一图搜索
居民 测量节点重要性
Conncomp. 连接的图形组件
BiconnComp. 双联的图形组件
BCTREE. 截止树木图
maxflow. 最大流程
minspantree. 最小的图形树木
isisomorphic. 确定两个图是否是同义的
同构 计算两个图之间的构态
是多药物 确定图是否有多个边缘
简化 将多重素减少到简单的图表
最短路径 两个单个节点之间的最短路径
缺点 节点的最短路径树
距离 所有节点对的最短路径距离
邻接 图形邻接矩阵
发病率 图形入射矩阵
拉普拉斯 图拉普拉斯矩阵
程度 图形节点的程度
邻居 图表节点的邻居
最近 半径内最近的邻居
外围 来自节点的外线
阴谋 绘图图节点和边缘

例子

全部收缩

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

g =图表([1 1],[2 3])
g =具有属性的图形:边缘:[2x1表]节点:[3x0表]

查看图形的边缘表。

G.Edges.
ans =.2×1表Endnode ________ 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'}

您可以在额外的变量中添加或修改额外变量节点边缘要描述图形节点或边缘的属性的表。但是,您无法通过修改这些表来直接更改图表中的节点或边缘数。相反,使用rmedge.addnode., 或者rmnode.用于修改图形中的节点或边的数量。

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

g = Accorltge(g,2,3)
g =带有属性的图形:边缘:[3x1表]节点:[3x1表]
G.Edges.
ans =.3×1表Endnodes ______________ {'a'} {'b'} {'a'} {'c'} {'b'} {'b'} {'b'} {'c'}

创建一个对称邻接矩阵,一种,它创建了一个完整的顺序图4。使用逻辑邻接矩阵来创建没有权重的图形。

A = =(4) -  DIAG([1 1 1 1])
A =4×4.0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0
g =图(a = 0)
g =具有属性的图形:边缘:[6x1表]节点:[4x0表]

查看图形的边缘列表。

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

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

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

使用邻接矩阵创建具有命名节点的图形。指定'omitselfloops'忽略对角线上的条目一种并指定类型作为'上'表示一种是大三角形。

名称= {'α''beta''伽玛''三角洲'};g =图表(a,名称,'上''omitselfloops'
g =带有属性的图形:边缘:[6x2表]节点:[4x1表]

查看边缘和节点信息。

G.Edges.
ans =.6×2表Endnode重量______________________ ______beta'} {'delta'} 8 {'gamma'} {'delta'} 12
G.Nodes.
ans =.4×1表姓名___p______ {'alpha'} {'beta'} {'gamma'} {'delta'}

使用每个边缘的结束节点列表创建和绘制多维数据集图。

S = [1 1 1 2 2 3 3 4 5 5 6 7];T = [2 4 8 3 7 4 6 5 6 8 7 8];g =图(s,t)
g =带有属性的图形:边缘:[12x1表]节点:[8x0表]
情节(g)

使用每个边缘的结束节点列表创建和绘制多维数据集图。将节点名称和边缘权重指定为单独的输入。

S = [1 1 1 2 2 3 3 4 5 5 6 7];T = [2 4 8 3 7 4 6 5 6 8 7 8];重量= [10 10 1 10 11 10 11 11 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 = [2 3 4 5 6];重量= [5 5 5 6 9];g =图表(s,t,重量,10)
g =具有属性的图形:边缘:[5x2表]节点:[10x0表]

绘制图形。额外的节点与主连接组件断开连接。

情节(g)

创建一个空图表对象,G

g =图;

在图表中添加三个节点和三个边。相应的条目S.T.定义图形边缘的结束节点。如果尚未存在,自动将相应的节点添加到图表中。

s = [1 2 1];t = [2 3 3];g = Accorltge(g,s,t)
g =带有属性的图形:边缘:[3x1表]节点:[3x0表]

查看边缘列表。每行描述图中的边缘。

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

为了最佳性能,使用单个呼叫一次性地构造图形图形。在循环中添加节点或边沿对于大图来说可以慢。

创建包含变量的边缘表endnode.重量, 和代码。然后创建包含变量的节点表名称国家。每个表中的变量指定图形节点和边的属性。

s = [1 1 1 2 3];t = [2 3 4 3 4];重量= [6 6.5 7 11.5 17]'代码= {'1/44''1/49''1/33''44 / 49''49 / 33'}'eDérable=表([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''deu''fra'}'country_code = {'1''44''49''33'}'nodetable =表(名称,country_code,'variablenames',{'名称''国家'})
nodetable =.4×2表姓名国家_______ ________________________'1'} {'44'{'44'} {'49'} {'49'} {'49'}

使用节点和边桌创建图形。使用国家代码作为节点和边缘标签绘制图形。

g =图(可爱的,nodetable);绘图(g,'nodelabel',g.nodes.country,'Edgelabel',g.edges.code)

兼容性考虑因素

展开全部

R2018A的行为发生了变化

在R2015B中介绍