Main Content

기존 그래프의 노드와 간선 수정하기

이 예제에서는 addedge, rmedge, addnode, rmnode, findedge, findnode, subgraph 함수를 사용하여 graph 객체나 digraph 객체의 노드 및/또는 간선에 액세스하고 수정하는 방법을 보여줍니다.

노드 추가하기

4개의 노드와 4개의 간선을 사용하여 그래프를 만듭니다. st에서 대응되는 요소는 각 그래프 간선의 끝 노드를 지정합니다.

s = [1 1 1 2];
t = [2 3 4 3];
G = graph(s,t)
G = 
  graph with properties:

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

그래프의 간선 목록을 확인합니다.

G.Edges
ans=4×1 table
    EndNodes
    ________

     1    2 
     1    3 
     1    4 
     2    3 

addnode를 사용하여 5개 노드를 그래프에 추가합니다. 다음 명령은 노드 ID가 5, 6, 7, 8, 9인 연결되지 않은 노드 5개를 추가합니다.

G = addnode(G,5)
G = 
  graph with properties:

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

노드 제거하기

rmnode를 사용하여 그래프에서 노드 3, 5, 6을 제거합니다. 제거하는 노드에 연결된 간선이 있다면 이러한 간선도 모두 제거됩니다. 그래프에 남아 있는 6개 노드는 새 노드 개수를 반영하도록 번호가 다시 지정됩니다.

G = rmnode(G,[3 5 6])
G = 
  graph with properties:

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

간선 추가하기

addedge를 사용하여 2개의 간선을 G에 추가합니다. 첫 번째 간선은 노드 1과 노드 5 사이에 있고, 두 번째 간선은 노드 2와 노드 5 사이에 있습니다. 다음 명령은 2개의 새 행을 G.Edges에 추가합니다.

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

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

간선 제거하기

rmedge를 사용하여 노드 1과 노드 3 사이에 있는 간선을 제거합니다. 다음 명령은 G.Edges에서 행을 제거합니다.

G = rmedge(G,1,3)
G = 
  graph with properties:

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

간선 인덱스 확인하기

노드 1과 노드 5 사이에 있는 간선에 대해 간선 인덱스를 확인합니다. 간선 인덱스 eiG.Edges의 행 번호입니다.

ei = findedge(G,1,5)
ei = 2

노드 인덱스 확인하기

노드 이름을 그래프에 추가한 후 노드 'd'에 대한 노드 인덱스를 확인합니다. 숫자형 노드 인덱스 niG.Nodes의 행 번호입니다. shortestpath와 같은 다른 그래프 함수를 사용할 때 ni와 노드 이름 'd'를 모두 사용하여 노드를 참조할 수 있습니다.

G.Nodes.Name = {'a' 'b' 'c' 'd' 'e' 'f'}';
ni = findnode(G,'d')
ni = 4

부분 그래프 추출하기

subgraph를 사용하여 2개의 노드만 포함하는 그래프 조각을 추출합니다.

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

    Edges: [1x1 table]
    Nodes: [2x1 table]

부분 그래프의 간선 목록을 표시합니다.

H.Edges
ans=table
       EndNodes   
    ______________

    {'a'}    {'b'}

변수 편집기를 사용하여 노드 테이블과 간선 테이블 수정하기

graph 객체에 대한 노드 정보와 간선 정보는 두 가지 속성 NodesEdges에 포함되어 있습니다. 이러한 속성은 모두 그래프에 포함된 노드와 간선의 특성(Attribute)을 설명하는 변수를 포함하는 테이블입니다. NodesEdges는 모두 테이블이므로 변수 편집기를 사용하여 대화형 방식으로 테이블을 보거나 편집할 수 있습니다. 반면, 변수 편집기를 사용하여 노드나 간선을 추가하거나 제거할 수는 없으며, Edges 테이블의 EndNodes 속성도 편집할 수 없습니다. 변수 편집기는 Nodes 테이블과 Edges 테이블에서 추가 노드 특성(Attribute)과 간선 특성을 관리하는 데 유용합니다. 자세한 내용은 변수 만들고 편집하기 항목을 참조하십시오.

참고 항목

| | | | | | | |

관련 항목