%% Reorder Graph Nodes by Degree
% Create and plot a weighted graph.

s = [1 1 1 2 2 2 2 3 4];
t = [3 4 2 3 4 5 6 5 6];
weights = [6 7 6 3 2 8 7 1 1]; 
G = digraph(s,t,weights);
plot(G,'EdgeLabel',G.Edges.Weight)

%
% Reorder the graph nodes based on the out-degree, such that node 1 has the largest out-degree.

[~,order] = sort(outdegree(G),'descend')

%

[H,idx] = reordernodes(G,order);
plot(H,'EdgeLabel',H.Edges.Weight)

%
% idx describes the permutation of the rows in G.Edges. Confirm this correspondence using the Weight variable.

isequal(H.Edges.Weight, G.Edges.Weight(idx))

% Copyright 2015 The MathWorks, Inc.