Main Content

reordernodes

그래프 노드 다시 정렬

설명

예제

H = reordernodes(G,order)order에 따라 그래프 G의 노드를 다시 정렬합니다. 이 재정렬(Reordering)은 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 object. The axes object 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 object. The axes object contains an object of type graphplot.

가중 그래프(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)

Figure contains an axes object. The axes object 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 object. The axes object contains an object of type graphplot.

idxG.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])

노드 순서로, 노드 인덱스 또는 노드 이름으로 지정됩니다. orderG의 인접 행렬에 대한 대칭 치환을 지정합니다. A = adjacency(G)이면 A(order,order)adjacency(H)를 생성합니다.

order는 다음 중 하나일 수 있습니다.

  • 노드 인덱스로 구성된 숫자형 벡터(예: [1 3 2]).

  • 노드 이름이 들어 있는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열(예: {'A' 'C' 'B'} 또는 ["A" "C" "B"]).

예: H = reordernodes(G,[3 1 2])

출력 인수

모두 축소

출력 그래프로, graph 객체 또는 digraph 객체로 반환됩니다. HG와 동일한 Nodes 속성과 Edges 속성을 포함하지만, 치환된 H.NodesH.Edges의 행을 사용합니다.

  • H.NodesG.Nodes(order,:)와 동일합니다.

  • H.Edges는 노드의 번호가 다시 매겨지는 것을 제외하고는 G.Edges(idx,:)와 유사합니다.

간선 인덱스의 치환 벡터로, 벡터로 반환됩니다. idx의 값은 G.Edges의 행 치환을 설명합니다.

확장 기능

스레드 기반 환경
MATLAB®의 backgroundPool을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool을 사용해 코드 실행 속도를 높일 수 있습니다.

버전 내역

R2015b에 개발됨

참고 항목

| | | | |