Main Content

inedges

ノードの入方向エッジ

説明

eid = inedges(G,nodeID) は、有向グラフ G 内のノード nodeID について、すべての入方向エッジのインデックスを返します。

[eid,nid] = inedges(G,nodeID) はさらに、eid のエッジによって nodeID に接続する先行ノードのノード ID も返します。

すべて折りたたむ

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

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

     1    2 
     1    2 
     1    3 
     2    3 

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

     3
     4

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

     1    3 
     2    3 

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

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

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

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

ノード 1 の入方向エッジと先行ノードを求めます。これらのノードとエッジを強調表示します。

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

     4
    13
    16

nid = 3×1

     2
     5
     6

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

     2    1       1   
     5    1       1   
     6    1       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.

入力引数

すべて折りたたむ

入力グラフ。digraph オブジェクトとして指定します。digraph を使用して、有向グラフ オブジェクトを作成します。

例: G = digraph([1 2],[2 3])

ノード識別子。次の表のいずれかの値として指定します。

スカラー ノード インデックス1
文字ベクトルのノード名'A'
string スカラーのノード名"A"

例: inedges(G,1)

例: inedges(G,'A')

出力引数

すべて折りたたむ

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

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

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

ヒント

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

  • 複数のエッジがあるグラフでは、一部の先行ノードからの入方向エッジが複数存在する可能性があるため、inedgespredecessors は異なる長さの配列を返す場合があります。

拡張機能

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

バージョン履歴

R2018a で導入