기존 그래프의 노드와 간선 수정하기
이 예제에서는 addedge
, rmedge
, addnode
, rmnode
, findedge
, findnode
, subgraph
함수를 사용하여 graph
객체나 digraph
객체의 노드 및/또는 간선에 액세스하고 수정하는 방법을 보여줍니다.
노드 추가하기
4개의 노드와 4개의 간선을 사용하여 그래프를 만듭니다. s
와 t
에서 대응되는 요소는 각 그래프 간선의 끝 노드를 지정합니다.
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 사이에 있는 간선에 대해 간선 인덱스를 확인합니다. 간선 인덱스 ei
는 G.Edges
의 행 번호입니다.
ei = findedge(G,1,5)
ei = 2
노드 인덱스 확인하기
노드 이름을 그래프에 추가한 후 노드 'd'
에 대한 노드 인덱스를 확인합니다. 숫자형 노드 인덱스 ni
는 G.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'}
변수 편집기를 사용하여 노드 테이블과 간선 테이블 수정하기
그래프 객체에 대한 노드 정보와 간선 정보는 두 가지 속성 Nodes
와 Edges
에 포함되어 있습니다. 이러한 속성은 모두 그래프에 포함된 노드와 간선의 특성(Attribute)을 설명하는 변수를 포함하는 테이블입니다. Nodes
와 Edges
는 모두 테이블이므로 변수 편집기를 사용하여 대화형 방식으로 테이블을 보거나 편집할 수 있습니다. 반면, 변수 편집기를 사용하여 노드나 간선을 추가하거나 제거할 수는 없으며, Edges
테이블의 EndNodes
속성도 편집할 수 없습니다. 변수 편집기는 Nodes
테이블과 Edges
테이블에서 추가 노드 특성(Attribute)과 간선 특성을 관리하는 데 유용합니다. 자세한 내용은 변수 만들고 편집하기 항목을 참조하십시오.
참고 항목
graph
| digraph
| addedge
| rmedge
| addnode
| rmnode
| findedge
| findnode
| subgraph