说明如何使用 '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
使用 'min' 选择方法并将 'PickVariable' 的值指定为 'Time' 变量,以找出每组节点之间最快的运输方式。
t = simplify(G,'min','PickVariable','Time');
plot(t,'EdgeLabel',cellstr(t.Edges.Mode))
使用 'sum' 聚合方法并将 'AggregationVariables' 的值指定为 'Cost',以计算每一种连接方式赚取的钱数。
c = simplify(G,'sum','AggregationVariables','Cost');
plot(c,'EdgeLabel',c.Edges.Cost)