Main Content

subgraph

부분 그래프(Subgraph) 추출

설명

예제

H = subgraph(G,nodeIDs)nodeIDs로 지정된 노드만 포함하는 G의 부분 그래프를 반환합니다.

H = subgraph(G,idx)는 논리형 벡터를 사용하여 부분 그래프 노드를 지정합니다.

예제

모두 축소

그래프를 생성하고 플로팅합니다.

s = [1 1 1 1 2 2 2 2 2 2 2 2 2 2 15 15 15 15 15];
t = [3 5 4 2 14 6 11 12 13 10 7 9 8 15 16 17 19 18 20];
G = graph(s,t);
plot(G,'Layout','force')

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

포함할 노드를 지정하여 G에서 부분 그래프를 추출합니다. 부분 그래프의 노드 번호는 재설정됩니다.

idx = [2 15 16 17 18 19 20 1 3 4 5];
H = subgraph(G,idx);
plot(H,'Layout','force')

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

명명된 노드가 있는 가중 그래프(Weighted Graph)를 생성하고 플로팅합니다.

s = [1 1 1 2 2 2 8 8 8 8];
t = [2 3 4 5 6 7 9 10 11 12];
weights = [10 30 40 80 60 60 20 30 90 80];
names = {'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L'};
G = graph(s,t,weights,names);
plot(G,'EdgeLabel',G.Edges.Weight)

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

노드 'B'와 해당 이웃을 모두 포함하는 부분 그래프를 추출합니다. subgraph는 노드 이름과 간선 가중치를 유지합니다. 하지만, H의 숫자형 노드 ID는 G와 비교하여 번호가 다시 매겨집니다.

N = neighbors(G,'B');
H = subgraph(G, ['B'; N]);
plot(H,'EdgeLabel',H.Edges.Weight)

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

입력 인수

모두 축소

입력 그래프로, graph 객체 또는 digraph 객체로 지정됩니다. 무방향 그래프를 생성하려면 graph를 사용하고 유방향 그래프를 생성하려면 digraph를 사용하십시오.

예: G = graph(1,2)

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

노드 ID로, 하나 이상의 노드 인덱스 또는 노드 이름으로 지정됩니다. nodeIDsG에서 일부 노드를 선택하여 부분 그래프 H를 생성합니다.

다음 표에서는 숫자형 노드 인덱스 또는 노드 이름을 사용하여 하나 이상의 노드를 참조하는 몇 가지 방법을 보여줍니다.

형식단일 노드여러 노드
노드 인덱스

스칼라

예: 1

벡터

예: [1 2 3]

노드 이름

문자형 벡터

예: 'A'

문자형 벡터로 구성된 셀형 배열

예: {'A' 'B' 'C'}

string형 스칼라

예: "A"

string형 배열

예: ["A" "B" "C"]

예: H = subgraph(G,[1 2 5])

예: H = subgraph(G,{'A' 'B' 'E'})

노드 선택 벡터로, 논리형 벡터로 지정됩니다. 부분 그래프는 idx(J)가 논리형 1(true)인 노드 J만 포함합니다. H에서 노드 J의 인덱스는 I(J)이고, I = find(idx)입니다.

예: subgraph(G,degree(G)>2)

데이터형: logical

출력 인수

모두 축소

부분 그래프로, graph 객체 또는 digraph 객체로 반환됩니다. HnodeIDs 또는 idx로 선택된 노드만 포함합니다. G의 다른 노드(및 이러한 노드에 연결되는 간선)는 삭제됩니다. 선택한 노드 및 간선의 노드 속성과 간선 속성은 G에서 H로 넘어갑니다.

graph 객체에 대한 자세한 내용은 graph 또는 digraph를 참조하십시오.

확장 기능

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

버전 내역

R2015b에 개발됨