既存グラフのノードとエッジの変更
この例では、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
を使用して G
に 2 つのエッジを追加します。1 番目のエッジはノード 1 とノード 5 の間にあり、2 番目のエッジはノード 2 とノード 5 の間にあります。このコマンドは G.Edges
に 2 つの新しい行を追加します。
G = addedge(G,[1 2],[5 5])
G = graph with properties: Edges: [4x1 table] Nodes: [6x0 table]
エッジの削除
rmedge
を使用してノード 1 とノード 3 の間のエッジを削除します。このコマンドは G.Edges
から 1 つの行を削除します。
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
という 2 つのプロパティに含まれています。これらのプロパティはどちらも、グラフ内のノードとエッジの属性を記述する変数が含まれるテーブルです。Nodes
と Edges
はどちらも table であるため、変数エディターを使用して対話的にその table を表示または編集できます。変数エディターでノードやエッジを追加または削除することはできません。また、Edges
table の EndNodes
プロパティを編集することもできません。変数エディターは Nodes
table や Edges
table 内のノードやエッジの余分な属性を管理する場合に便利です。詳細については、変数の作成と編集を参照してください。
参考
graph
| digraph
| addedge
| rmedge
| addnode
| rmnode
| findedge
| findnode
| subgraph