文件

图形

具有无向边的图表

描述

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

图([1 1],[2 3]);e = add (G,2,3) G = add (G,4) plot(G)

创建

句法

g =图形
g =图表(a)
图G =(一个节点名)
g =图(a,nodetable)
g =图(a,___、类型)
g =图(a,___,'omitselfloops')
图G = (s, t)
g =图(s,t,重量)
图G = (s t重量、节点名)
g =图(s,t,重量,nodetable)
g =图(s,t,权重,num)
图G = (s, t)___,'omitselfloops')
图G = (s t EdgeTable,___
g =图(可爱的)
图G = (EdgeTable NodeTable)
g =图(Edgetable,___,'omitselfloops')

描述

例子

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

例子

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

例子

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

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

例子

G=图形(一种___类型指定在构造图时使用的邻接矩阵的三角形。您必须指定一种并且可以选择指定节点名n.仅使用鞋面或下三角形一种为了构造这个图,类型可以是“上”“低”

例子

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

例子

G=图形(s t指定图像边缘(英石)在节点对中。S.T.可以是具有相同数量元素的数字、字符向量或字符向量的单元格数组。

例子

G=图形(s t权重还指定了与数组的边缘权重权重

例子

G=图形(s t权重节点名使用字符向量的单元数组指定节点名称,节点名S.T.不能包含不在列表中的节点名节点名

G=图形(s t权重n使用表指定节点名称(可能还有其他节点属性),n.使用该节点名称指定节点名称姓名表变量。S.T.不能包含不在列表中的节点名n

例子

G=图形(s t权重全国矿工工会使用数字标量指定图中的节点数全国矿工工会

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

G=图形(s tEdgeTable___使用表格指定边缘属性而不是指定权重.的EdgeTable输入必须是一个表,其中每个对应的元素对S.T..使用表变量指定边缘权重重量

例子

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

例子

G=图形(EdgeTablen另外,使用表指定图形节点的名称(可能还有其他属性),n

G=图形(EdgeTable___,'omitselfloops')不向图中添加自循环。也就是说,任何K.满足EdgeTable.EndNodes (k, 1) = = EdgeTable.EndNodes (k, 2)将被忽略。您必须指定EdgeTable并且可以选择指定n

输入参数

展开全部

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

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

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

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

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

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

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

数据类型:细胞

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

例子:图G = (A,“上”)仅使用上三角形一种为了构造这个图,G

节点对,指定为标量,向量,矩阵,多维数组,字符向量或字符向量的单元格阵列。图形中对应节点之间的边S.T.,这必须是数字,也必须是字符向量或字符向量的特征向量。在每种情况下,S.T.必须具有相同数量的元素。

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

  • 如果S.T.是字符向量或字符向量的单元格数组,然后它们指定节点的名称。的节点属性是一个包含姓名变量与节点名称,g.nodes.name.

  • S.T.无法指定重复的边缘。对于无向图形,图([1 2],[2 1])图([1 1],[2 2])两者都在节点1和节点2之间指定重复边缘。

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

例子:{'波士顿' '纽约' '华盛顿特区},{'纽约' '新泽西' '匹兹堡' '})创建具有5个命名节点和3条边的图。

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

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

如果您指定权重作为空数组[],则被忽略。

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

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

图节点的数目,指定为正标量整数。全国矿工工会必须大于或等于S.T.

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

边缘信息表。如果您未指定S.T.,然后是第一个变量EdgeTable是一个两列矩阵吗EndNodes定义图形边缘。对于边缘权重,使用变量重量,因为这个表变量名被一些图形函数使用。如果有变量重量,然后它必须是数字列向量。看到表格有关构造表的更多信息。

创建图形后,使用查询边缘信息表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.返回边缘权重的数字矢量。

例子:[10 20 30 55]'为图指定新的边权值。

例子:G.edges.normweight = G.edges.weight / Sum(G.edges.weight)向包含边的标准化权重的表中添加一个新的边属性。

数据类型:表格

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

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

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

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

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

例子:G.Nodes.WiFi = logical([1 0 0 1 1])添加变量无线网络节点表格此属性指定某些机场具有无线互联网覆盖。

数据类型:表格

对象功能

将新边沿添加到图表
rmedge. 从图中删除边
addnode 向图中添加新节点
rmnode 从图中删除节点
findedge 在图中找到边缘
FindNode. 在图中定位节点
numedges 图中的边数
numnodes. 图中的节点数
reordernodes 重新排序图形节点
子图 提取子图
BFSearch. 宽度第一图搜索
dfsearch. 图深度优先搜索
中心 测量节点重要性
conncomp 连接的图形组件
biconncomp 双联的图形组件
bctree 截止树木图
maxflow. 最大流程
minspantree 图的最小生成树
isisomorphic. 确定两个图是否是同义的
同构 计算两个图之间的等效关系
最短路径 两个单个节点之间的最短路径
shortestpathtree 从节点到最短路径树
距离 所有节点对的最短路径距离
邻接 图的邻接矩阵
发病率 图的关联矩阵
拉普拉斯 图拉普拉斯算子的矩阵
程度 图形节点的程度
邻居 图节点的邻域
最近 半径内最近的邻居
阴谋 绘制图节点和边

例子

展开全部

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

g =图表([1 1],[2 3])
G = graph with properties: Edges: [2x1 table] Nodes: [3x0 table]

查看图形的边表。

G.Edges
ans =.2 x1表Endnode ________ 1 2 1 3

将节点名称添加到图中,然后查看新的节点表和边表。每个边的结束节点现在使用它们的节点名来表示。

G.Nodes.Name = {'一种''B''C'} ';G.Nodes.
ans =.3x1表姓名____'a'''b''c'
G.Edges
ans =.2 x1表Endnodes __________''B''''C'

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

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

G = addedge (G, 2、3)
g =带有属性的图形:边缘:[3x1表]节点:[3x1表]
G.Edges
ans =.3x1表Endnodes __________'''B''A''C''B''C'

创建一个对称邻接矩阵,一种,这就形成了一个4阶的完整图。使用逻辑邻接矩阵来创建没有权值的图。

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

查看图形的边缘列表。

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

建立上三角邻接矩阵。

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

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

名称= {“α”'beta''伽玛'“δ”};g =图表(a,名称,“上”'omitselfloops'
G =具有属性的图:Edges: [6x2 table] Nodes: [4x1 table]

查看边缘和节点信息。

G.Edges
ans =.6x2表格EndNodes重量  __________________ ______ ' α’‘βα' 2 ' ' 'αγ' 3 ' ' '三角洲“13”β“伽马‘10’β' ' ' 8 '伽马“δ”12
G.Nodes.
ans =.4 x1表命名_______ '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 =具有属性的图:Edges: [12x2 table] Nodes: [8x1 table]
情节(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 = addedge (G s t)
G = graph with properties: Edges: [3x1 table] Nodes: [3x0 table]

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

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

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

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

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 x3表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 =4x2表格姓名国家_________'美国'1'''gbr'''44'''deu''''''''''33'

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

图G = (EdgeTable NodeTable);情节(G,'nodelabel'G.Nodes.Country,'Edgelabel'G.Edges.Code)

介绍了R2015b

这个话题有用吗?