exponenta event banner

reordernodes

Переупорядочить узлы графика

Описание

пример

H = reordernodes(G,order) переупорядочивает узлы в графике G в соответствии с order. Эта переупорядоченность соответствует симметричной перестановке матрицы смежности G.

пример

[H,idx] = reordernodes(G,order) также возвращает вектор перестановки для граничных индексов, idx. Например, если G.Edges имеет переменную Weight, то H.Edges.Weight == G.Edges.Weight(idx).

Примеры

свернуть все

Создайте и постройте график.

s = [1 1 1 2 5 3 6 4 7 8 8 8];
t = [2 3 4 5 3 6 4 7 2 6 7 5];
G = graph(s,t);
plot(G)

Figure contains an axes. The axes contains an object of type graphplot.

Переупорядочить узлы графа с помощью вектора перестановки.

order = [7 2 3 4 8 1 5 6];
G = reordernodes(G,order);
plot(G)

Figure contains an axes. The axes contains an object of type graphplot.

Создание и печать взвешенного графика.

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)

Figure contains an axes. The axes contains an object of type graphplot.

Переупорядочить узлы графа на основе степени отсутствия, так что узел 1 имеет наибольшую степень отсутствия.

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

     2
     1
     3
     4
     5
     6

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

Figure contains an axes. The axes contains an object of type graphplot.

idx описывает перестановку строк в G.Edges. Подтвердите эту корреспонденцию с помощью Weight переменная.

isequal(H.Edges.Weight, G.Edges.Weight(idx))
ans = logical
   1

Входные аргументы

свернуть все

Входной график, указанный как graph или digraph объект. Использовать graph для создания неориентированного графика или digraph для создания направленного графа.

Пример: G = graph(1,2)

Пример: G = digraph([1 2],[2 3])

Порядок узлов, указанный как индексы узлов или имена узлов. order задает симметричную перестановку матрицы смежности G. Если A = adjacency(G), то A(order,order) производит adjacency(H).

order может быть одним из:

  • Числовой вектор индексов узлов, например, [1 3 2].

  • Массив ячеек символьных векторов или строковый массив имен узлов, например {'A' 'C' 'B'} или ["A" "C" "B"].

Пример: H = reordernodes(G,[3 1 2])

Выходные аргументы

свернуть все

Выходной график, возвращаемый как graph или digraph объект. H содержит то же самое Nodes и Edges свойства как G, но со строками H.Nodes и H.Edges перестановка:

  • H.Nodes является таким же, как G.Nodes(order,:).

  • H.Edges аналогичен G.Edges(idx,:), за исключением того, что узлы перенумерованы.

Вектор перестановки граничных индексов, возвращаемый как вектор. Значения в idx описать перестановку строк в G.Edges.

См. также

| | | | |

Представлен в R2015b