Main Content

addedge

그래프에 새 간선 추가

설명

예제

H = addedge(G,s,t)는 그래프 G의 노드 s와 노드 t 사이에 간선을 추가합니다. st로 지정된 노드가 G에 없는 경우 해당 노드가 추가됩니다. 새 그래프 HG와 동일하지만, 새 간선과 필요한 새 노드를 모두 포함합니다.

예제

H = addedge(G,s,t,w)st 사이의 간선에 대한 가중치 w도 지정합니다.

H = addedge(G,s,t,EdgeTable)s 노드와 t 노드 사이에 테이블 EdgeTable에 지정된 특성을 갖는 간선을 추가합니다.

예제

H = addedge(G,EdgeTable)은 테이블 EdgeTable에 지정된 특성을 갖는 간선을 추가합니다. EdgeTable 입력값은 G.Edges와 결합(Concatenate)될 수 있어야 합니다.

예제

모두 축소

2개의 새 간선을 기존 그래프에 추가합니다. 새 간선 중 하나가 존재하지 않는 노드를 참조하므로 addedge는 필요한 네 번째 노드를 그래프에 자동으로 추가합니다.

G = graph([1 2],[2 3])
G = 
  graph with properties:

    Edges: [2x1 table]
    Nodes: [3x0 table]

G = addedge(G,[2 1],[4 3])
G = 
  graph with properties:

    Edges: [4x1 table]
    Nodes: [4x0 table]

가중치 간선이 있는 유방향 그래프를 생성합니다.

G = digraph({'A' 'B' 'C'}, {'D' 'C' 'D'}, [10 20 45])
G = 
  digraph with properties:

    Edges: [3x2 table]
    Nodes: [4x1 table]

3개의 새 가중치 간선을 그래프에 추가합니다. addedge는 새 노드가 필요한 경우 이러한 노드도 모두 그래프에 자동으로 추가합니다.

G = addedge(G, {'A' 'D' 'E'}, {'E' 'B' 'D'}, [5 30 5])
G = 
  digraph with properties:

    Edges: [6x2 table]
    Nodes: [5x1 table]

특성 WeightPower를 갖는 간선을 포함하는 그래프를 생성합니다. 간선 테이블을 사용하여 그래프를 생성합니다.

EdgeTable = table([1 2; 2 3; 2 4; 2 5; 5 6; 5 7; 5 8], ...
    {'on','off','off','on','on','on','off'}',[10 20 20 10 10 10 20]', ...
    'VariableNames',{'EndNodes','Power','Weight'});
G = graph(EdgeTable)
G = 
  graph with properties:

    Edges: [7x3 table]
    Nodes: [8x0 table]

G.Edges에 결합(Concatenate)될 수 있는 더 작은 테이블을 생성하여 그래프에 2개의 새 간선을 추가합니다. 참고로, 이 더 작은 테이블은 G.Edges와 동일한 순서의 변수를 사용해야 합니다.

NewEdges = table([5 9; 3 6], {'on' 'off'}', [10 20]', ...
    'VariableNames',{'EndNodes','Power','Weight'});
G = addedge(G,NewEdges)
G = 
  graph with properties:

    Edges: [9x3 table]
    Nodes: [9x0 table]

간선이 추가된 그래프의 새 간선 목록을 봅니다.

G.Edges
ans=9×3 table
    EndNodes     Power     Weight
    ________    _______    ______

     1    2     {'on' }      10  
     2    3     {'off'}      20  
     2    4     {'off'}      20  
     2    5     {'on' }      10  
     3    6     {'off'}      20  
     5    6     {'on' }      10  
     5    7     {'on' }      10  
     5    8     {'off'}      20  
     5    9     {'on' }      10  

입력 인수

모두 축소

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

예: G = graph(1,2)

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

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

그래프에 아직 없는 노드 이름을 사용하여 간선을 추가하는 경우 addedgeg.Nodes.Name 테이블 하단에 새 노드 이름을 추가합니다. st가 categorical형 배열인 경우 st의 범주가 노드 이름으로 사용됩니다. 여기에는 s 또는 t의 요소가 아닌 범주도 포함될 수 있습니다.

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

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

스칼라

예: 1

벡터

예: [1 2 3]

노드 이름

문자형 벡터

예: 'A'

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

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

string형 스칼라

예: "A"

string형 배열

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

categorical형 배열

예: categorical("A")

categorical형 배열

예: categorical(["A" "B" "C"])

예: G = addedge(G, [1 2], [3 4])는 그래프에 2개의 간선을 추가합니다. 하나는 노드 1에서 노드 3으로 연결되는 간선이고, 다른 하나는 노드 2에서 노드 4로 연결되는 간선입니다.

예: G = addedge(G, {'a' 'a'; 'b' 'c'}, {'b' 'c'; 'c' 'e'})는 그래프에 4개의 간선을 추가합니다. 4개 중 첫 번째 간선은 'a'에서 'b'로 연결됩니다.

간선 가중치로, 스칼라, 벡터, 행렬 중 하나로 지정됩니다.

  • w가 스칼라나 행 벡터이면 이는 st의 간선 각각에 대한 가중치를 지정하는 스칼라 확장입니다.

  • w가 열 벡터이면 s(:)t(:)와 길이가 같아야 합니다.

  • w가 행렬이면 s(:)t(:)와 요소 개수가 같아야 합니다.

예: G = addedge(G, [2 2], [4 5], [1 100]')은 각각 가중치가 1100인 2개의 간선을 추가합니다.

데이터형: single | double
복소수 지원 여부:

간선 특성으로, 테이블로 지정됩니다. 추가 중인 그래프 간선을 정의하는 데 st를 지정하지 않는다면 EdgeTable의 첫 번째 변수는 추가 중인 그래프 간선을 정의하는 EndNodes라는 이름의 2열 행렬이어야 합니다.

EdgeTable은 다음과 같은 일반적인 특징을 가져야 합니다.

  • 가중 그래프(Weighted Graph)의 경우, EdgeTable은 변수 Weight를 포함해야 합니다.

  • 그래프에 다른 간선 특성이 있는 경우, 호환성을 보장하기 위해서는 EdgeTableG.Edges와 동일한 변수를 모두 포함해야 합니다.

  • EdgeTable의 변수 순서는 G.Edges의 변수 순서와 동일해야 합니다.

데이터형: table

출력 인수

모두 축소

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

확장 기능

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

버전 내역

R2015b에 개발됨

모두 확장