findedge
グラフ内のエッジを検出
構文
説明
例
指定の終了ノードをもつエッジの検出
グラフを作成し、(1,2) と (3,5) のエッジについて、エッジ インデックスを求めます。
s = [1 1 2 2 2 3 3 3]; t = [2 3 3 4 5 6 7 5]; G = graph(s,t)
G = graph with properties: Edges: [8x1 table] Nodes: [7x0 table]
idxOut = findedge(G,[1 3],[2 5])
idxOut = 2×1
1
6
idxOut
には、指定した各エッジについて G.Edges.EndNodes
の行インデックスが含まれます。
すべてのグラフ エッジの終了ノード
グラフを作成し、そのグラフ内にあるすべてのエッジの終了ノードを求めます。
s = {'a' 'a' 'b' 'b' 'c' 'c'}; t = {'b' 'c' 'd' 'e' 'f' 'g'}; G = graph(s,t); G.Edges
ans=6×1 table
EndNodes
______________
{'a'} {'b'}
{'a'} {'c'}
{'b'} {'d'}
{'b'} {'e'}
{'c'} {'f'}
{'c'} {'g'}
[sOut,tOut] = findedge(G)
sOut = 6×1
1
1
2
2
3
3
tOut = 6×1
2
3
4
5
6
7
指定のエッジ インデックスをもつエッジの検出
グラフを作成し、エッジ インデックスが 3
および 7
のエッジについて終了ノードを求めます。
s = [1 1 1 1 2 2 3 3 4 4]; t = [2 3 4 5 6 7 8 9 10 11]; G = digraph(s,t)
G = digraph with properties: Edges: [10x1 table] Nodes: [11x0 table]
[sOut,tOut] = findedge(G,[3 7])
sOut = 2×1
1
3
tOut = 2×1
4
8
指定したエッジの重みを求める
グラフを作成します。
s = [1 1 2 3]; t = [2 3 3 4]; weights = [10 20 30 40]; G = graph(s,t,weights)
G = graph with properties: Edges: [4x2 table] Nodes: [4x0 table]
findedge
を使用してエッジ インデックスを取得して、(1,3) エッジの重みを求めます。
G.Edges.Weight(findedge(G,1,3))
ans = 20
多重グラフ エッジの重みの変更
findedge
を使用して複数の多重グラフ エッジの重みを変更します。
多重グラフを作成してプロットします。このグラフにはノード 2 とノード 4 の間に 2 つのエッジがあります。
s = [1 1 2 3 2 2];
t = [2 3 3 4 4 4];
weights = [10 20 30 40 10 10];
G = graph(s,t,weights);
plot(G,'EdgeLabel',G.Edges.Weight)
ノード (3,2) と (2,4) の間のエッジの重みを変更します。2 つの出力を findedge
に指定して、終了ノード インデックス m
を取得します。この出力は、2 つのノード間に複数のエッジがある場合に役に立ちます。idxOut
の要素の数が、s
と t
のノード ペア数より多い場合があるためです。エッジ idxOut(1) = 3
はノード ペア (s(1),t(1)) = (3,2)
を連結し、エッジ idxOut(2) = 4
とエッジ idxOut(3) = 5
はエッジ (s(2),t(2)) = (2,4)
を連結します。
s = [3 2]; t = [2 4]; w = [1 4]; [idxOut, m] = findedge(G, s, t)
idxOut = 3×1
3
4
5
m = 3×1
1
2
2
G.Edges.Weight(idxOut) = w(m);
plot(G,'EdgeLabel',G.Edges.Weight)
入力引数
s,t
— ノード ペア (個別の引数として指定)
ノード インデックス | ノード名
ノード ペア。ノード インデックスまたはノード名の個別の引数として指定します。s
および t
に同じように配置された要素は、グラフ エッジのソース ノードおよびターゲット ノードを指定します。
次の表に、1 つ以上のノードを数値ノード インデックスまたはノード名のいずれかで参照するさまざまな方法を示します。
形式 | 単一ノード | 複数ノード |
---|---|---|
ノード インデックス | スカラー 例: | ベクトル 例: |
ノード名 | 文字ベクトル 例: | 文字ベクトルの cell 配列 例: |
string スカラー 例: | string 配列 例: | |
categorical 配列 例: | categorical 配列 例: |
例: G = findedge(G,[1 2],[3 4])
例: G = findedge(G,{'a' 'a'; 'b' 'c'},{'b' 'c'; 'c' 'e'})
idx
— エッジ インデックス
スカラー | ベクトル
エッジ インデックス。正の整数のスカラーまたはベクトルとして指定します。エッジ インデックスは、グラフ G.Edges(idx,:)
のテーブル G.Edges
の行に対応します。
出力引数
idxOut
— エッジ インデックス
スカラー | ベクトル
エッジ インデックス。非負の整数のスカラーまたはベクトルとして返されます。エッジ インデックスは、グラフ G.Edges(idxOut,:)
のテーブル G.Edges
の行に対応します。0
のエッジ インデックスは、グラフに含まれないエッジを示します。
idxOut
の長さは、入力グラフが多重グラフでない限り、入力のノード ペア数に一致します。
m
— 終了ノード インデックス
ベクトル
終了ノード インデックス。ベクトルとして返されます。m
の値は、idxOut
のエッジ インデックスを入力ノード ペア (s,t)
に連結します。エッジ idxOut(j)
はノード ペアをインデックス m(j)
に連結します。
sOut,tOut
— ノード ID
スカラー | ベクトル
ノード ID。正の整数の個別のスカラーまたはベクトルとして返されます。同様に配置された sOut
および tOut
の要素は、エッジ G.Edges(idx,:)
を構成するソース ノードおよびターゲット ノードを指定します。
バージョン履歴
R2015b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)