Main Content

rmedge

그래프에서 간선 제거

설명

예제

H = rmedge(G,s,t)는 그래프 G에서 노드 쌍 st로 지정된 간선을 제거합니다. st로 다중 간선이 지정된 경우, 모두 제거됩니다.

예제

H = rmedge(G,idx)는 간선 인덱스 idx를 사용하여 제거할 간선을 지정합니다. 간선 인덱스는 G.Edges 테이블의 행 번호입니다.

예제

모두 축소

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

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

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

그래프에서 여러 간선을 제거하고 결과를 플로팅합니다.

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

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

그래프를 생성하고 간선 목록을 봅니다.

s = {'BOS' 'NYC' 'NYC' 'NYC' 'LAX'};
t = {'NYC' 'LAX' 'DEN' 'LAS' 'DCA'};
G = digraph(s,t);
G.Edges
ans=5×1 table
         EndNodes     
    __________________

    {'BOS'}    {'NYC'}
    {'NYC'}    {'LAX'}
    {'NYC'}    {'DEN'}
    {'NYC'}    {'LAS'}
    {'LAX'}    {'DCA'}

간선 인덱스를 사용하여 노드 'NYC'와 노드 'DEN' 사이의 간선을 제거합니다.

G = rmedge(G,3);
G.Edges
ans=4×1 table
         EndNodes     
    __________________

    {'BOS'}    {'NYC'}
    {'NYC'}    {'LAX'}
    {'NYC'}    {'LAS'}
    {'LAX'}    {'DCA'}

이 예제에서는 그래프에서 모든 자가 루프를 제거하는 방법을 보여줍니다. 자가 루프는 노드 자신을 연결하는 간선입니다.

두 개의 자가 루프를 가지는 그래프를 생성합니다.

G = graph([1 1 1 2],[1 2 3 2]);
plot(G)

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

rmedge를 사용하여 그래프에서 모든 자가 루프를 제거합니다. G에는 자가 루프가 두 개뿐이지만, 이 기법을 사용하면 모든 유방향 그래프나 무방향 그래프에서 모든 자가 루프가 제거됩니다.

G = rmedge(G, 1:numnodes(G), 1:numnodes(G));
plot(G)

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

노드 쌍으로, 노드 인덱스 또는 노드 이름의 개별 인수로 지정됩니다. st에서 유사한 위치의 요소는 그래프에 추가되는 간선에 대한 소스 노드와 타깃 노드를 지정합니다.

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

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

스칼라

예: 1

벡터

예: [1 2 3]

노드 이름

문자형 벡터

예: 'A'

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

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

string형 스칼라

예: "A"

string형 배열

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

예: G = rmedge(G,1,2)는 그래프 G에서 노드 1과 노드 2 사이의 간선을 제거합니다.

예: G = rmedge(G,{'a' 'b'},{'d' 'c'})는 그래프 G에서 노드 'a'와 노드 'd' 사이에 있는 처음 2개의 간선을 제거합니다.

간선 인덱스로, 스칼라 또는 벡터로 지정됩니다. 간선 인덱스는 G.Edges 테이블의 행 번호로, 음이 아닌 정수입니다.

예: G = rmedge(G,[1 3 5])G.Edges에서 첫 번째, 세 번째, 다섯 번째 간선(행)을 제거합니다.

출력 인수

모두 축소

출력 그래프로, graph 객체 또는 digraph 객체로 반환됩니다.

확장 기능

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

버전 내역

R2015b에 개발됨