Main Content

outedges

ノードからの出方向のエッジ

説明

eid = outedges(G,nodeID) は、グラフ G 内のノード nodeID からのすべての出方向のエッジのインデックスを返します。

さらに、[eid,nid] = outedges(G,nodeID) は、エッジ eidnodeID に連結されている後続ノード nid を返します。

すべて折りたたむ

3 つのノードと 4 つのエッジを持つ無向多重グラフを作成します。ノード 2 の出方向のエッジを検出します。

G = graph([1 1 1 2],[2 2 3 3]);
G.Edges
ans=4×1 table
    EndNodes
    ________

     1    2 
     1    2 
     1    3 
     2    3 

eid = outedges(G,2)
eid = 3×1

     1
     2
     4

ベクトル eid には、G.Edges table の行へのインデックスが含まれます。このベクトルを使用して G.Edges にインデックスを付けます。

G.Edges(eid,:)
ans=3×1 table
    EndNodes
    ________

     1    2 
     1    2 
     2    3 

無向グラフでは、エッジ (1,2) と (2,1) は同じです。

グラフをプロットし、選択したノードの出方向のエッジと後継ノードを強調表示します。

隣接行列 bucky を使用して有向グラフを作成し、プロットします。参照用にノード 10 を強調表示します。

G = digraph(bucky);
p = plot(G);
highlight(p,10,'NodeColor','r','MarkerSize',10)

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

ノード 10 の出方向のエッジと後継ノードを判断します。これらのノードとエッジを強調表示します。

[eid,nid] = outedges(G,10)
eid = 3×1

    28
    29
    30

nid = 3×1

     6
     9
    12

X = G.Edges(eid,:)
X=3×2 table
    EndNodes    Weight
    ________    ______

    10     6      1   
    10     9      1   
    10    12      1   

highlight(p,nid,'NodeColor','g','MarkerSize',9)
highlight(p,'Edges',eid,'EdgeColor','g')

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
文字ベクトルのノード名'A'
string スカラーのノード名"A"

例: outedges(G,1)

例: outedges(G,'A')

出力引数

すべて折りたたむ

エッジ インデックス。列ベクトルとして返されます。エッジ インデックスを使用して、G.Edges(eid,:) でグラフのエッジ テーブルにインデックスを付けることができます。

後継ノードのノード ID。nodeID が数値の場合はノード インデックス、nodeID がノード名の場合はノード名として返されます。findnode(G,nid) を使用してノード名をノード インデックスに変換します。ノード インデックスを使用して、G.Nodes(nid,:) でグラフのノード テーブルにインデックスを付けることができます。

nid のノード ID は、関数 successors で返されるノード ID と同じです。ただし、同じノードに複数の出方向のエッジがある場合、このノードは nid に複数回リストされます。

ヒント

  • 慣例により、無向グラフでは、ノードに接続するすべてのエッジが出方向のエッジと見なされます。有向グラフで入方向のエッジを検出するには、inedges を使用します。

  • 複数のエッジをもつグラフの場合、いくつかの後継ノードへの出方向のエッジが複数存在する可能性があるため、outedges および successors は長さの異なる配列を返す可能性があります。

拡張機能

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

バージョン履歴

R2018a で導入