主要内容

简化

将多重素减少到简单的图表

描述

例子

H=简化(G返回没有多个边缘或自循环的图形。当多个边缘发生在相同的两个节点之间时,只有第一边(如定义)G.Edges.) 保持。边缘属性保留。

例子

H=简化(GPickmethod.指定在多个边缘之间进行选择的方法。边缘属性保留。Pickmethod.'第一的'(默认),'最后的''min', 要么'最大限度'

例子

H=简化(Gaggregatemethod.指定将多个边缘的边缘权重组合成单个新边缘的权重的方法。所有其他边缘属性G被删除了。aggregatemethod.'和'要么'意思'

例子

H=简化(___selfleopflag.指定是否使用先前语法中的任何输入参数组合从图中保留或删除自循环。例如,'贴身体'指定具有一个或多个自循环的节点将在简化图中具有一个自循环。

H=简化(___名称,价值指定具有一个或多个名称值对参数的其他选项。例如,您可以指定'挑剔'和一个变量G.Edges.使用该变量'min'要么'最大限度'选择方法。

例子

[Heecount.] =简化(___另外返回边缘指数e和边缘数目ecount.

  • H.edges(Eind(i),:)是边缘H这代表边缘一世G

  • eCount(j)是边缘的数量G对应于边缘jH

例子

全部收缩

使用节点1和节点2之间的多个边缘创建加权的无向多角形。

G =曲线图([11 11 1 2 3],[2 2 3 3 4],1:6);G.Edges.
ans =.6×2表Endnode重量________ ______1 2 1 1 2 2 1 2 3 1 3 4 2 3 5 3 4 6

简化多密码图,使得节点1和节点2之间只有一个边缘。简化将第一个边缘保持在这两个节点之间,G.edges(1,:),并放弃其他人。

g =简化(g);G.Edges.
ans =.4×2表Endnodes重量________ ______1 2 1 1 3 4 2 3 5 3 4 6

使用第二个输入简化选择一种在多个边缘之间挑选的方法,或将多个边缘组合成一个。

创建一个加权多密码。在该图中,节点3和节点4之间发生五个边,但边缘具有随机权重。查看边缘表并绘制图表以供参考。

G =曲线图([1 2 3 3 3 3 3],[2 3 1 4 4 4 4 4],Randi(10,1,8));G.Edges.
ans =.8×2表Endnodes重量________ ______1 2 9 1 3 2 2 3 10 3 4 10 3 4 7 3 4 1 3 4 3 3 4 6
绘图(g,'Edgelabel',g.edges.weight)

图包含轴。轴包含Type Graphplot的对象。

命令简化(g)保持第一边的第一个。但是,您可以使用第二个输入指定不同的选择/组合方法。

在多个边缘之间采集选项是:'第一的'(默认),'最后的''min', 和'最大限度'。保持重复的边缘,最大重量。

h_pick =简化(g,'最大限度');绘图(H_PICK,'Edgelabel',h_pick.edges.weight)

图包含轴。轴包含Type Graphplot的对象。

将多个边缘组合成一个的选项是:'和''意思'。总和重复边缘一起生产重量较大的单个边缘。

h_comb =简化(g,'和');绘图(H_COMB,'Edgelabel',h_comb.edges.weight)

图包含轴。轴包含Type Graphplot的对象。

简化图形,同时使用该图形保留自循环'贴身体'选项。

使用两个节点和几个自动循环创建多叠片。简化图形并保留自循环。

G =曲线图([1 11 1 11 11 11 2 2 2],[111 1 11 2 2 2 2 2 2 2]);绘图(g)轴平等的

图包含轴。轴包含Type Graphplot的对象。

g =简化(g,'贴身体');绘图(g)轴平等的

图包含轴。轴包含Type Graphplot的对象。

使用第二和第三输出简化获取有关组合数量(以及哪个)边缘的信息。

使用三个节点和四个边缘创建一个无向多角形。

g =图([111 1 2],[2 2 3 3]);G.Edges.
ans =.4×1表Endnode ________ 1 2 1 2 1 3 2 3

简化图形并指定三个输出以获取有关组合边缘的其他信息。

[g,ei,ec] =简化(g)
g =带有属性的图形:边缘:[3x1表]节点:[3x0表]
ei =4×11 1 2 3
EC =3×12 1 1

ei(i)是表示边缘的简化图中的边缘一世在旧图表中。由于重复前两个边缘,EI(1)= EI(2)= 1。还,EC(1)= 2,因为在旧图中对应于边缘1的新图中有两个边。

展示如何使用该方法使用该方法'挑剔''聚合variables'名称值对。

在其中创建节点代表位置的多层游戏,并且边缘代表运输方式。边缘具有反映每种运输方式的成本和时间的属性。预览边缘表。

G =曲线图([11 1 11 3 3 3 3],[],{'纽约''波士顿''华盛顿特区。'});G.EDGES.MODE =分类([1 2 3 1 2 3 11 2 3],[1 2 3],{'空气''火车''公共汽车'})';G.edges.Cost = [400 80 40 250 100 75 325 150 100]'G.edges.time = [1 7 5 1.5 10 8 1.75 11 9]';G.Edges.
ans =.9×4表Endnodes模式成本时间_______________________________________________________________________________·纽约'} {'BOSTON'} {'BOSTON'}火车80 7 {“纽约”} {'BOSTON'}公交车40 5{'New York'} {'Washington D.C.'} Air 250 1.5 {'New York'} {'Washington D.C.'} Train 100 10 {'New York'} {'Washington D.C.'} Bus 75 8 {'Boston' } {'Washington D.C.'} Air 325 1.75 {'Boston' } {'Washington D.C.'} Train 150 11 {'Boston' } {'Washington D.C.'} Bus 100 9

绘制图表参考。在每个边缘标记运输模式,使边缘线宽度成比例,每个边缘的颜色与成本成本成比例。

绘图(g,'Edgelabel',cellstr(g.edges.mode),'行宽',g.edges.time。/ min(g.edges.time),'edgecdata',g.edges.cost)颜色栏

图包含轴。轴包含Type Graphplot的对象。

使用'min'选择方法并指定值'挑剔'作为'时间'变量找到每组节点之间的最快传输模式。

t =简化(g,'min''挑剔''时间');绘图(T,'Edgelabel',cellstr(t.edges.mode))

图包含轴。轴包含Type Graphplot的对象。

使用'和'聚合方法并指定值'聚合variables'作为'成本'计算每次连接上都有多少钱。

c =简化(g,'和''聚合variables''成本');绘图(C,'Edgelabel',c.edges.cost)

图包含轴。轴包含Type Graphplot的对象。

输入参数

全部收缩

输入图形,指定为a图形要么dig目的。采用图形创建一个无向图形或dig创建定向图形。

例子:g =图(1,2)

例子:G = Digraph([1 2],[2 3])

边缘拣选方法,指定为'第一的''最后的''min', 要么'最大限度'。边缘拣选方法提供了一种方法来选择多个边缘存在多个边缘之间的多个边缘中的哪个方法。

  • 如果方法是'第一的'要么'最后的', 然后简化仅保留在边缘表中发生的第一个或最后边缘G.Edges.

  • 如果方法是'min'要么'最大限度', 然后简化仅保留最小或最大重量的边缘。这重量变量必须存在G.Edges.,除非你使用'挑剔'名称值对基于不同变量的选择。

例子:简化(g,'last')

聚合方法,指定为'和'要么'意思'。聚合方法提供了在同一两个节点之间存在多于一个边的边沿将多个边缘组合成单个边缘的方法。

默认情况下,简化只有总和或平均图形中的边缘权重,并丢弃所有其他边缘属性。但是,你可以使用'聚合variables'名称 - 值对以指定哪些数字变量G.Edges.保护和汇总。

例子:简化(g,'sum')

切换以保留自循环,指定为:

  • 'omitselfloops'- 从图表中删除所有自循环。这是默认值。

  • '贴身体'- 具有一个或多个自循环的节点在简化的图表中具有单个自循环。

例子:简化(g,'sum','severseyloops')

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:h =简化(g,'sum','aggregationvariables',{'var1''var2'})

变量为基本边缘选择,指定为逗号分隔对组成'挑剔'和变量名称或数字索引。使用此名称 - 值对选择边缘变量G.Edges.以外'重量'与之使用'min'要么'最大限度'采摘方法。简化当在相同的两个节点之间存在多个边沿时,仅保留所选变量的最小值或最大值的边缘。

例子:简化(g,'min','挑剔',3)

例子:简化(g,'min','pickvariable','var3')

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|UINT64|char|细绳

聚合的变量,指定为逗号分隔对'聚合variables'和变量名称,变量名称,字符串数组,数字矢量,逻辑向量或函数句柄的单元格数组。使用此名称值对选择一个或多个边缘变量G.Edges.这可以与之相结合'和'要么'意思'聚合方法。简化当在相同的两个节点之间存在多个边缘时,将这些变量的值与一个新边缘组合成一个新边缘。的价值'聚合variables'可以是以下之一:

  • 指定单个表变量名称的字符矢量

  • 每个元素是表变量名称的字符向量的单元格数组

  • 字符串数组指定一个或多个变量名称

  • 表可变指数矢量

  • 元素对应于表变量的逻辑向量,其中真的包括相应的变量和错误的不包括它

  • 采用的功能手柄G.Edges.表作为输入并返回逻辑标量,例如@Isnumeric.

例子:简化(g,'sum','aggregationvariables',[4 5 6])

例子:简化(g,'均值','emgregationvariables',{'var5 var7'})

例子:简化(g,'均值','聚合variables',@ isnumeric)

数据类型:单身的|双倍的|逻辑|function_handle.|char|细绳|细胞

输出参数

全部收缩

简化图形,作为一个返回图形要么dig目的。H不含两个节点之间的任何重复边缘,使其Isumultigraph(h)返回逻辑0.错误的)。除非您指定了自我循环,除非您指定了'贴身体'选项。

边缘指数,作为向量返回。边缘H这代表边缘一世G是(谁)给的H.edges(Eind(i),:)。如果是边缘一世G是一个被删除的自循环,然后是Eind(i)0.

边缘计数,作为向量返回。ecount(i)是边缘的数量G对应于边缘一世H

也可以看看

||

在R2018A介绍