matlab 简化结果,将多重图简化为简单图

说明如何使用 'PickVariable' 和 'AggregationVariables' 名称-值对组来简化多重图。

创建一个多重图,其中的节点表示位置,边表示运输方式。边的属性反映每一种运输方式的成本和时间。预览边表。

G = graph([1 1 1 1 1 1 2 2 2],[2 2 2 3 3 3 3 3 3],[],{'New York', 'Boston', 'Washington D.C.'});

G.Edges.Mode = categorical([1 2 3 1 2 3 1 2 3],[1 2 3],{'Air' 'Train' 'Bus'})';

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 table

EndNodes Mode Cost Time

___________________________________ _____ ____ ____

{'New York'} {'Boston' } Air 400 1

{'New York'} {'Boston' } Train 80 7

{'New York'} {'Boston' } Bus 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

绘制图作为参考。在每条边上标记运输模式,使边的线宽与时间成正比,并使每条边的颜色与成本成正比。

plot(G,'EdgeLabel',cellstr(G.Edges.Mode),'LineWidth',G.Edges.Time./min(G.Edges.Time),'EdgeCData',G.Edges.Cost)

colorbar

5655f9ac292eca11e0015ee1b388f06b.png

使用 'min' 选择方法并将 'PickVariable' 的值指定为 'Time' 变量,以找出每组节点之间最快的运输方式。

t = simplify(G,'min','PickVariable','Time');

plot(t,'EdgeLabel',cellstr(t.Edges.Mode))

7506e70bb8230d802af14a52d1d2a878.png

使用 'sum' 聚合方法并将 'AggregationVariables' 的值指定为 'Cost',以计算每一种连接方式赚取的钱数。

c = simplify(G,'sum','AggregationVariables','Cost');

plot(c,'EdgeLabel',c.Edges.Cost)

8d03b133443192dfa40ce4bae397f1c9.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值