Main Content

subgraph

説明

H = subgraph(G,nodeIDs) は、nodeIDs で指定されるノードのみを含む G の部分グラフを返します。

H = subgraph(G,idx) は logical ベクトルを使用して部分グラフ ノードを指定します。

すべて折りたたむ

グラフを作成してプロットします。

s = [1 1 1 1 2 2 2 2 2 2 2 2 2 2 15 15 15 15 15];
t = [3 5 4 2 14 6 11 12 13 10 7 9 8 15 16 17 19 18 20];
G = graph(s,t);
plot(G,'Layout','force')

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

含めるノードを指定して、G から部分グラフを抽出します。部分グラフのノードの番号付けがリセットされます。

idx = [2 15 16 17 18 19 20 1 3 4 5];
H = subgraph(G,idx);
plot(H,'Layout','force')

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

名前付きノードをもつ重み付きグラフを作成し、プロットします。

s = [1 1 1 2 2 2 8 8 8 8];
t = [2 3 4 5 6 7 9 10 11 12];
weights = [10 30 40 80 60 60 20 30 90 80];
names = {'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L'};
G = graph(s,t,weights,names);
plot(G,'EdgeLabel',G.Edges.Weight)

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

ノード 'B' およびその隣接ノードをすべて含む部分グラフを抽出します。subgraph はノード名とエッジの重みを保持します。ただし、H の数値ノード ID は、G と比較して番号付けが再度行われています。

N = neighbors(G,'B');
H = subgraph(G, ['B'; N]);
plot(H,'EdgeLabel',H.Edges.Weight)

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

ノード識別子。1 つ以上のノード インデックスまたはノード名として指定します。nodeIDsG のノードの一部を選択し、部分グラフ H を生成します。

次の表に、1 つ以上のノードを数値ノード インデックスまたはノード名のいずれかで参照するさまざまな方法を示します。

形式単一ノード複数ノード
ノード インデックス

スカラー

例: 1

ベクトル

例: [1 2 3]

ノード名

文字ベクトル

例: 'A'

文字ベクトルの cell 配列

例: {'A' 'B' 'C'}

string スカラー

例: "A"

string 配列

例: ["A" "B" "C"]

例: H = subgraph(G,[1 2 5])

例: H = subgraph(G,{'A' 'B' 'E'})

ノード選択ベクトル。logical ベクトルとして指定します。部分グラフには、idx(J) が logical 1 (true) であるノード J のみが含まれます。H のノード J のインデックスは I(J) で、I = find(idx) です。

例: subgraph(G,degree(G)>2)

データ型: logical

出力引数

すべて折りたたむ

部分グラフ。graph オブジェクトまたは digraph オブジェクトとして返されます。H は、nodeIDs または idx で選択されたノードのみを含みます。G のその他のノード (およびそれらのノードに連結するエッジ) は破棄されます。選択されたノードとエッジのそれぞれのプロパティは、G から H に引き継がれます。

グラフ オブジェクトの詳細については、graph または digraph を参照してください。

拡張機能

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2015b で導入