文档帮助中心
用图表向边
有向图对象表示有向图,有向边连接节点。创建了有向图对象,您可以通过使用对象函数对对象执行查询来了解关于图的更多信息。例如,您可以添加或删除节点或边,确定两个节点之间的最短路径,或定位特定节点或边。
有向图
G = digraph([1 1], [2 3]) e = G. edges G = addedge(G,2,3) G = addnode(G,4) plot(G)
G =有向图
G =有向图(A)
节点名G =有向图(一)
NodeTable G =有向图(一)
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 =有向图(EdgeTable)
G =有向图(EdgeTable NodeTable)
G =有向图(EdgeTable,___'omitselfloops')
例子
G=有向图创建一个空的有向图的对象,G,它没有节点或边缘。
G=有向图
G
G有向图=(一个)使用方形邻接矩阵创建一个加权有向图,一个。在每个非零项的位置一个指定了图中的边,并且边的权重等于项的值。例如,如果A(2,1)= 10,然后G包含一条权值为10的从节点2到节点1的边。
G有向图=(一个)
一个
A(2,1)= 10
G有向图=(一个,节点名)另外指定节点名称。元素的数量节点名必须等于大小(1)。
G有向图=(一个,节点名)
节点名
大小(1)
G有向图=(一个,NodeTable)使用表指定节点名称(可能还有其他节点属性),NodeTable。表的行数必须与一个。使用表变量指定节点名的名字。
G有向图=(一个,NodeTable)
NodeTable
的名字
G有向图=(一个,___'omitselfloops')忽略的对角元素一个并返回,没有任何自我循环的图表。您可以在前面的语法使用任何输入参数的组合。
G有向图=(一个,___'omitselfloops')
G有向图=(S,T)指定有向图的边缘(s, t)在对表示源和目标节点。年代和t可以指定节点索引或节点名称。
G有向图=(S,T)
S,T
(s, t)
年代
t
G有向图=(S,T,权重)还指定与阵列边权权重。
G有向图=(S,T,权重)
权重
G有向图=(S,T,权重,节点名)使用字符载体或字符串数组的单元阵列进一步指定节点名称,节点名。年代和t不能包含不在节点名称节点名。
G有向图=(S,T,权重,节点名)
G有向图=(S,T,权重,NodeTable)使用表指定节点名称(可能还有其他节点属性),NodeTable。属性指定节点名称的名字表变量。年代和t不能包含不在节点名称NodeTable。
G有向图=(S,T,权重,NodeTable)
G有向图=(S,T,权重,NUM)指定用数字标量图中的节点的数目NUM。
G有向图=(S,T,权重,NUM)
NUM
G有向图=(S,T,___'omitselfloops')不添加任何自循环的图形。也就是说,任何k满足s (k) = = t (k)将被忽略。您可以在前面的语法使用任何输入参数的组合。
G有向图=(S,T,___'omitselfloops')
k
s (k) = = t (k)
G有向图=(S,T,EdgeTable,___)使用表指定边缘属性,而不是指定权重。的EdgeTable输入必须与一个行的表中的每个对应的一对元件年代和t。使用表变量指定边的权重重量。
G有向图=(S,T,EdgeTable,___)
EdgeTable
重量
G有向图=(EdgeTable)使用的表EdgeTable来定义图表。有了这个语法,在第一个变量EdgeTable必须命名EndNodes,它必须是一个定义图的边列表的两列数组。
G有向图=(EdgeTable)
EndNodes
G有向图=(EdgeTable,NodeTable)另外,使用表指定图节点的名称(可能还有其他属性),NodeTable。
G有向图=(EdgeTable,NodeTable)
G有向图=(EdgeTable,___'omitselfloops')不添加自循环的图形。也就是说,任何k满足EdgeTable.EndNodes(K,1)== EdgeTable.EndNodes(K,2)将被忽略。您必须指定EdgeTable也可以选择指定NodeTable。
G有向图=(EdgeTable,___'omitselfloops')
EdgeTable.EndNodes(K,1)== EdgeTable.EndNodes(K,2)
展开全部
邻接矩阵,指定为一个完整的或稀疏,数字矩阵。中的条目一个指定的连接(边缘)的曲线图的节点之间的网络。在每个非零项的位置一个指定两个节点之间的边缘。该条目的值提供边缘权重。逻辑邻接矩阵导致的未加权曲线图。
的主对角线上的非零项一个指定自循环,或用边连接自己的节点。使用“omitselfloops”输入选择忽略对角线项。
“omitselfloops”
例:A = [0 10 0;0 0 0;5 0 0)描述具有三个节点和两条边的图。从节点1到节点2的边的权值为1而从节点3到节点1的边的权值为5。
A = [0 10 0;0 0 0;5 0 0)
1
5
数据类型:单|双|逻辑
单
双
逻辑
节点名,指定为字符向量或串阵列的单元阵列。节点名长度必须等于numnodes(G)因此,它包含了图中每个节点的非空,唯一的名称。
numnodes(G)
例:G =有向图(A,{ 'N1', 'N2', 'N3'})为一个3×3的邻接矩阵指定三个节点名称,一个。
G =有向图(A,{ 'N1', 'N2', 'N3'})
数据类型:细胞|字符串
细胞
字符串
源和目标节点对,指定为节点索引或节点名称。有向图中对应节点之间创建有向边年代和t,这必须都是数字的,或两者是字符向量,特征向量,分类阵列,或串阵列的单元阵列。在所有情况下,年代和t必须有相同数目的元素。
如果年代和t是数值的,则对应于图节点的索引。数值节点索引必须是大于或等于1的正整数。
如果年代和t是字符向量、字符向量的单元数组或字符串数组,然后它们指定节点的名称。的节点该图的属性是一个含有一个表的名字变量的节点名,G.Nodes.Name。
节点
G.Nodes.Name
如果年代和t是分类阵列,则类别年代和t被用作在图中的节点名称。这可以包括不在元件类别年代要么t。
如果年代和t指定相同的两个节点之间的多个边缘,则结果为一复印印刷。
此表显示了通过数字节点索引或节点名称引用一个或多个节点的不同方法。
纯量
例:1
向量
例:(1 2 3)
(1 2 3)
特征向量
例:“一个”
“一个”
字符向量的单元阵列
例:{ 'A' 'B' 'C'}
{ 'A' 'B' 'C'}
字符串标量
例:“一种”
“一种”
String数组
例:(“A”“B”“C”)
(“A”“B”“C”)
分类数组
例:分类(“”)
分类(“”)
例:分类([ “A” “B” “C”])
分类([ “A” “B” “C”])
例:G =有向图([1 2 3],[2 4 5])创建具有五个节点和三个边缘的曲线图。
G =有向图([1 2 3],[2 4 5])
例:({'波士顿' ' '纽约' '华盛顿特区},{“纽约”“新泽西”“匹兹堡”})创建五个命名节点和三个边的图。
({'波士顿' ' '纽约' '华盛顿特区},{“纽约”“新泽西”“匹兹堡”})
[]
边权值,指定为标量、向量、矩阵或多维数组。权重必须是具有相同数量元素的标量或数组年代和t。
有向图存储边权作为重量在变量G.Edges属性表。要在创建图后添加或更改权重,可以直接修改表变量,例如,G.Edges.Weight= [25 50 75]'。
G.Edges
G.Edges.Weight= [25 50 75]'
如果您指定权重作为空数组[],那么它将被忽略。
例:G =有向图([1 2],[2 3],[100 200])创建一个有三个节点和两条边的图。这些边的权值是One hundred.和200。
G =有向图([1 2],[2 3],[100 200])
One hundred.
200
数据类型:单|双
图中的节点,指定为正标量整数的数目。NUM必须大于或等于最大元素年代和t。
例:G =有向图([1 2],[2 3],[],5)创建一个具有三个连接的节点和两个隔离的节点的图。
G =有向图([1 2],[2 3],[],5)
边缘信息表。如果您没有指定年代和t,则在所述第一可变EdgeTable是需要一个两列矩阵,字符向量的单元数组,或字符串数组调用EndNodes它定义了图的边。对于边的权重,使用变量重量中,由于该表中的变量名称所使用的一些曲线图的功能。如果有一个变量重量,那么它必须是一个数值列向量。看到表关于构建表的详细信息。
表
创建图后,查询边缘信息表使用G.Edges。
例:EdgeTable =表([1 2;2 3;3 5;4 5], VariableNames, {' EndNodes '})
EdgeTable =表([1 2;2 3;3 5;4 5], VariableNames, {' EndNodes '})
数据类型:表
节点信息表。NodeTable可以包含任意数量的变量来描述图中的节点的属性。对于节点名称,使用变量的名字,因为这个变量名被一些图函数使用。如果有一个变量的名字,则必须是字符向量的单元数组或在每行中指定唯一名称的字符串数组。看到表关于构建表的详细信息。
被创建的图形后,使用查询节点信息表G.Nodes。
G.Nodes
例:NodeTable =表({' a ';“b”;“c”;' d '}, VariableNames,{'名字'})
NodeTable =表({' a ';“b”;“c”;' d '}, VariableNames,{'名字'})
有向图,返回为有向图目的。
边缘
图形的边缘,返回一个表。默认情况下,这是一个米-通过-1表,米是图中的边缘的数量。
米
到新的边缘属性添加到图中,创建在一个新的可变边缘表格
若要从图中添加或删除边,请使用addedge要么rmedge对象的功能。
addedge
rmedge
例:G.Edges返回一个表格列出了图中的边
例:G.Edges.Weight返回边缘权重的数值向量。
G.Edges.Weight
例:G.Edges.Weight = [10 20 30 55]”为图指定新的边权值。
G.Edges.Weight = [10 20 30 55]”
例:G.Edges。N要么mWeight = G.Edges.Weight/sum(G.Edges.Weight)增加了一个新的边缘属性来包含的边缘的权重标准化的表。
G.Edges。N要么mWeight = G.Edges.Weight/sum(G.Edges.Weight)
图的节点,以表的形式返回。默认情况下,这是空的N-通过-0表,N是图中的节点的数目。
N
0
属性中创建一个新变量,以向图中添加新的节点属性节点表格
从图表添加或删除节点,使用addnode的要么rmnode对象的功能。
addnode的
rmnode
例:G.Nodes返回一个列出图的节点属性的表。默认情况下,该表为空。
例:G.Nodes.Name年代= {'Montana', 'New York', 'Washington', 'California'}'通过添加变量向图中添加节点名名称到节点表格
G.Nodes.Name年代= {'Montana', 'New York', 'Washington', 'California'}'
名称
例:G.Nodes.WiFi =逻辑([1 0 0 1 1]')添加变量无线上网到节点表格此属性指定某些机场具有无线互联网覆盖。
G.Nodes.WiFi =逻辑([1 0 0 1 1]')
无线上网
flipedge
findedge
findnode
numedges
numnodes
edgecount
reordernodes
子图
bfsearch
dfsearch
中心地位
toposort
transclosure
transreduction
isdag
conncomp
冷凝
maxflow
isisomorphic
同构
ismultigraph
简化
最短路径
shortestpathtree
距离
邻接
发生率
入度
出度
前辈
继任者
最近的
inedges
outedges
情节
全部收缩
创建一个有向图具有三个节点和三条边的对象。一条边是从节点1到节点2,另一条是从节点1到节点3,第三条是从节点2到节点1。
G =有向图([1 1 2],[2 3 1])
G =有向图具有属性:边缘:[3X1表]节点:[3x0表]
查看图的边表。对于有向图,第一列表示每条边的源节点,第二列表示目标节点。
ANS =3×1表EndNodes ________ 1 2 1 3 2 1
节点名称添加到图形,然后查看新的节点和边桌。每条边的源和目标节点现在正在使用的节点名称表示。
G.Nodes.Name= {“一个”“B”“C”} ';G.Nodes
ANS =3×1表名称_____ { 'A'} { 'B'} { 'C'}
ANS =3×1表EndNodes ______________ { 'A'} { 'B'} { 'A'} { 'C'} { 'B'} { 'A'}
属性中添加或修改额外的变量节点和边缘描述图节点或边属性的表。但是,您不能通过修改这些表来直接更改图中的节点或边的数量。相反,使用addedge,rmedge,addnode的,或rmnode函数修改图中的节点或边的数量。
例如,在图中节点2和节点3之间添加一条边,就可以查看新的边列表。
G = addedge(G,2,3)
G =属性:边:[4x1表]节点:[3x1表]的有向图
ANS =4×1表{A} EndNodes * * * {B} {A} {' C '} {B} {A} {B} {' C '}
创建一个对称邻接矩阵,一个中,创建的顺序4.使用一个逻辑邻接矩阵来创建没有重量的曲线图的完整向图。
A =酮(4) - DIAG([1 1 1 1])
一个=4×40 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0
~ = 0 G =有向图()
G =有向图具有属性:边缘:[12X 1表]节点:[4x0表]
查看图的边列表。
ANS =12×1表EndNodes ________ 1 2 3 1 4 2 1 2 3 2 4 3 1 2 3 4 4 1 4 2 3
创建一个邻接矩阵。
A =魔法(4);A(A> 10)= 0
一个=4×40 2 3 5 10 8 9 7 6 4 0 1
使用邻接矩阵创建一个具有指定节点的图。指定“omitselfloops”忽略对角线上的元素一个。
名称= {'α'“β”“伽马”'三角洲'};G =有向图(一个,名字,“omitselfloops”)
G =有向图具有属性:边缘:[8X2表]节点:[4X1表]
查看边缘和节点信息。
ANS =8×2表EndNodes重量______________________ ______ { '阿尔法'} { '测试'} 2 { '阿尔法'} { 'γ'} 3 { '测试'} { '阿尔法'} 5 { '测试'} { 'γ'} 10 {”的β”} { '增量'} 8 { 'γ'} { '阿尔法'} 9 { 'γ'} { '测试'} 7 { '增量'} { '阿尔法'} 4
ANS =4×1表名字_____{“α”}{“beta”}{“伽马”}{“δ”}
创建并绘制使用每个边缘的端部的节点的列表的立方体图。
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 =有向图具有属性:边缘:[12X 1表]节点:[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];weights = [10 10 1 10 1 10 1 1 12 12 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 = [11 11 11 1];t = [2 3 4 5 6];weights = [5 5 5 6 9];G =有向图(s t重量、10)
G =有向图具有属性:边缘:[5×2表]节点:[10x0表]
画出图。额外的节点与主连接组件断开连接。
图(G)
创建一个空的有向图的对象,G。
G =有向图;
添加三个节点和三个边的图形。在相应的条目年代和t定义边缘的源节点和目标节点。addedge如果不存在适当的节点,则自动将它们添加到图中。
S = [1 2 1];T = [2 3 3];G = addedge(G,S,T)
查看边列表。每一行描述了图中的一条边。
ANS =3×1表EndNodes ________ 1 2 1 3 2 3
为了获得最佳性能,结构图表一次全部使用单一呼叫有向图。对于大型图来说,在循环中添加节点或边会很慢。
创建包含变量的边缘表EndNodes,重量和代码。然后创建一个包含变量的节点表的名字和国家。每个表中的变量指定的图形的节点和边的性质。
代码
国家
s = [1 1 1 2 2 3];t = [2 3 4 3 4 4];weights = [6 6.5 7 11.5 12 17]';代码= {“1/44”“1/49”“1/33”'44 / 49'“44/33”'49 / 33'} ';EdgeTable =表([S'T'],权重,代码,…“VariableNames”{“EndNodes”'重量''码'})
EdgeTable =6×3表EndNodes重码________ ______ _________ 1 2 6 { '1/44'} 1 3 6.5 { '1/49'} 1 4 7 { '1/33'} 2 3 11.5 {'44 / 49' } 2 4 12 {'44 / 33 '} 3 4 17 {'49 / 33'}
名称= {'美国'“GBR”“申”联邦铁路局的} ';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改变
图,有向图和addedge当它们遇到重复的边时不再产生错误。相反,重复的边被添加到图中,结果就是一个多图。的ismultigraph函数用于检测这种情况,并且简化提供了一种简单的方法来删除多余的边缘。
图
图|子图
存在于你和你的团队的版本中。版本是什么?
我们可以从MATLAB中得出相应的结论:
Ejecute EL COMANDOintroduciéndolo带拉本塔纳去comandos日MATLAB。洛杉矶navegadores网络没有admiten comandos日MATLAB。
选择一个网站,在可用的地方获得翻译内容,并查看当地的活动和优惠。根据您的位置,我们建议您选择:。
您还可以选择从下面的列表中的网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
请联系您当地的办事处