主要内容

简化

减少多重图简单的图

描述

例子

H=简化(G)返回一个没有多个边缘或self-loops图。当几个相同的两个节点间发生的边缘,只有第一个边缘(如中定义G.Edges)保存。边缘属性保存。

例子

H=简化(G,pickmethod)指定一个方法来选择多个边缘。边缘属性保存。pickmethod可以“第一”(默认),“最后一次”,“最小值”,或“马克斯”

例子

H=简化(G,aggregatemethod)指定一个方法结合多重边的边的权值为一个新的边缘的重量。所有其他属性G是下降了。aggregatemethod可以“和”“的意思是”

例子

H=简化(___,selfloopflag)指定是否要保存或删除self-loops从图使用任何输入参数组合在以前的语法。例如,“keepselfloops”指定节点与一个或多个self-loops将有一个自身环简化图。

H=简化(___,名称,值)与一个或多个名称-值对参数指定附加选项。例如,您可以指定“PickVariable”和一个变量G.Edges使用该变量“最小值”“马克斯”选择方法。

例子

(H,eind,ecount)=简化(___)另外回报优势指数eind和边数ecount:

  • H.Edges (eind(我):)的优势是H代表边缘G

  • ecount (j)边的数量在吗G对应于边缘jH

例子

全部折叠

创建一个加权无向多重图有几个节点1和节点2之间的边缘。

图G = ((1 1 1 1 2 3) (2 2 2 3 3 4) 1:6);G.Edges
ans =6×2表EndNodes重量________ ________ 1 2 1 1 2 2 1 2 3 1 3 4 3 2 3 5 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 3],[2 3 1 4 4 4 4 4],兰迪(10 1 8));G.Edges
ans =8×2表EndNodes重量________ ________ 1 2 9 1 3 2 2 3 10 3 4 3 4 7 3 4 1 3 4 3 3 4 6
情节(G,“EdgeLabel”G.Edges.Weight)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

命令简化(G)不断重复的第一边缘。不过,您可以指定一个不同的选择与第二个输入/组合方法。

选择多个边缘之间的选择是:“第一”(默认),“最后一次”,“最小值”,“马克斯”。保持与最大重量重复边缘。

H_pick =简化(G,“马克斯”);情节(H_pick“EdgeLabel”H_pick.Edges.Weight)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

结合多个边缘成一个选项:“和”“的意思是”。重复和边缘在一起产生一个边缘更大的重量。

H_comb =简化(G,“和”);情节(H_comb“EdgeLabel”H_comb.Edges.Weight)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

简化图,同时保留self-loops使用“keepselfloops”选择。

创建一个多重图有两个节点和若干self-loops。并保存self-loops简化图。

图G = ([1 1 1 1 1 1 1 2 2 2 2], [1 1 1 1 2 2 2 2 2 2 2]);情节(G)轴平等的

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

G =简化(G,“keepselfloops”);情节(G)轴平等的

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

使用的第二个和第三个输出简化得到的信息有多少()边缘的总和。

创建一个无向多重图有三个节点和四个边。

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

简化图并指定三个输出可获得更多信息合并后的边缘。

(G, ei, ec) =简化(G)
图G =属性:边缘:[3 x1表]节点:[3 x0表)
ei =4×11 1 2 3
电子商务=3×12 1 1

ei(我)是代表边缘的简化图的边缘在旧图。因为前两个边缘是重复的,ei (1) = (2) = 1。同时,电子商务(1)= 2,因为有两个新图形边缘对应边缘1在旧图。

展示如何简化多重图使用“PickVariable”“AggregationVariables”名称-值对。

创建一个多重图,节点代表位置和边缘代表模式的交通工具。边的属性反映了每个运输方式的成本和时间。预览边表。

图G = ([1 1 1 1 1 1 2 2 2], [2 2 2 3 3 3 3 3 3], [], {“纽约”,“波士顿”,“华盛顿特区”。});G.Edges。模式=分类([1 2 3 1 2 3 1 2 3],(1 2 3){“空气”“火车”“公共汽车”});G.Edges。成本= (400 80 325 250 100 75 150 100)';G.Edges。时间= [1 7 5 1.5 10 8 1.75 11 9]';G.Edges
ans =9×4表EndNodes模式成本___________________________________ _____ _____ __{“纽约”}{}“波士顿”空气400 1{“纽约”}{}“波士顿”培训80名7{“纽约”}{}“波士顿”巴士40 5{“纽约”}{华盛顿特区}空气250 1.5{“纽约”}{华盛顿特区'}培训100名10{“纽约”}{华盛顿特区}总线75 8{“波士顿”}{华盛顿特区空气}325 1.75{“波士顿”}{华盛顿特区'}培训150名11{“波士顿”}{华盛顿特区}总线100 9

绘制图供参考。标签每个边缘上的运输方式,使边缘线宽度成正比,和每条边的颜色与成本成正比。

情节(G,“EdgeLabel”cellstr (G.Edges.Mode),“线宽”G.Edges.Time. /分钟(G.Edges.Time),“EdgeCData”G.Edges.Cost) colorbar

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

使用“最小值”选择方法和指定的值“PickVariable”随着“时间”变量之间找到最快捷的运输方式,每组节点。

t =简化(G,“最小值”,“PickVariable”,“时间”);情节(t)“EdgeLabel”cellstr (t.Edges.Mode))

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

使用“和”聚合方法和指定的值“AggregationVariables”作为“成本”计算了每个连接多少钱。

c =简化(G,“和”,“AggregationVariables”,“成本”);情节(c,“EdgeLabel”c.Edges.Cost)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

输入参数

全部折叠

输入图,指定为一个有向图对象。使用创建一个无向图有向图创建一个有向图。

例子:图G = (1、2)

例子:2 G =有向图([1],[2 3])

边挑选方法,指定为“第一”,“最后一次”,“最小值”,或“马克斯”。边挑选方法提供了一种选择的几个边缘保护当多个边缘之间存在相同的两个节点。

  • 如果该方法“第一”“最后一次”,然后简化只保留第一个或最后一个边缘边缘表中发生G.Edges

  • 如果该方法“最小值”“马克斯”,然后简化只保留了边缘与最小或最大重量。的重量变量必须存在于G.Edges,除非你使用“PickVariable”名称-值对基地选择在不同的变量。

例子:简化(G,“最后”)

聚合方法,指定为“和”“的意思是”。聚合方法提供了一种方法来将一些边缘合并到一个边缘当有多个相同的两个节点之间的边。

默认情况下,简化只有金额或平均图中边的权值和所有其他边缘属性下降。然而,您可以使用“AggregationVariables”名称-值对将指定哪个数值变量G.Edges维护并聚合。

例子:简化(G, '和')

切换self-loops,指定为:

  • “omitselfloops”——删除所有self-loops图。这是默认的。

  • “keepselfloops”——节点与一个或多个self-loops有一个自身环的简化图。

例子:简化(G,“和”,“keepselfloops”)

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:H =简化(G,‘和’,‘AggregationVariables’, {‘Var1’‘Var2})

变量选择基地优势,指定为逗号分隔组成的“PickVariable”和一个变量名或数字索引。使用这个名称-值对选择一个变量G.Edges除了“重量”使用与“最小值”“马克斯”挑选方法。简化只保留边缘的最小或最大价值选择变量,当有几个相同的两个节点之间的边。

例子:简化(G,‘敏’,‘PickVariable’, 3)

例子:简化(G,‘敏’,‘PickVariable’,‘var3’)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

变量聚合,指定为逗号分隔组成的“AggregationVariables”和一个变量名,单元阵列变量名,字符串数组,数字矢量,逻辑向量,或函数处理。使用这个名称-值对来选择一个或多个变量G.Edges可以结合“和”“的意思是”聚合方法。简化将这些变量的值组合成一个值为一个新的边缘有几个相同的两个节点之间的边。的价值“AggregationVariables”可以是下列之一:

  • 特征向量指定单个表变量名

  • 单元阵列特征向量,其中每个元素是一个表变量名

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

  • 矢量表变量的指数

  • 逻辑向量的元素对应于表变量真正的包括相应的变量不包括它

  • 一个函数处理的G.Edges表作为输入,并返回一个逻辑标量,等@isnumeric

例子:简化(G,“和”,“AggregationVariables”, [4 5 6])

例子:简化(G,‘意思’,‘AggregationVariables’, {“var5 var7 '})

例子:简化(G,‘意思’,‘AggregationVariables’, @isnumeric)

数据类型:||逻辑|function_handle|字符|字符串|细胞

输出参数

全部折叠

简化图,作为一个返回有向图对象。H不包含任何重复相同的两个节点之间的边,这样吗ismultigraph (H)返回逻辑0()。Self-loops也删除,除非你指定“keepselfloops”选择。

优势指标,作为一个向量返回。的边缘H代表边缘G是由H.Edges (eind(我):)。如果边缘G是一个被自身环呢eind(我)0

边数,作为一个向量返回。ecount(我)边的数量在吗G对应于边缘H

版本历史

介绍了R2018a

另请参阅

||