Main Content

rmedge

グラフからエッジを削除

説明

H = rmedge(G,s,t) は、ノード ペア st で指定されたエッジをグラフ G から削除します。s および t で指定された複数のエッジがある場合、それらのエッジはすべて削除されます。

H = rmedge(G,idx) は、削除するエッジをエッジ インデックス idx で指定します。エッジ インデックスはテーブル G.Edges の行番号です。

すべて折りたたむ

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

s = [1 1 1 2 2 3 3 4 5 5 6 7];
t = [2 4 5 3 6 4 7 8 6 8 7 8];
G = graph(s,t);
plot(G)

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

グラフから複数のエッジを削除し、結果をプロットします。

G = rmedge(G,[1 2 3 4],[5 6 7 8]);
plot(G)

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

グラフを作成し、エッジ リストを表示します。

s = {'BOS' 'NYC' 'NYC' 'NYC' 'LAX'};
t = {'NYC' 'LAX' 'DEN' 'LAS' 'DCA'};
G = digraph(s,t);
G.Edges
ans=5×1 table
         EndNodes     
    __________________

    {'BOS'}    {'NYC'}
    {'NYC'}    {'LAX'}
    {'NYC'}    {'DEN'}
    {'NYC'}    {'LAS'}
    {'LAX'}    {'DCA'}

エッジ インデックスを使用して、ノード 'NYC''DEN' の間のエッジを削除します。

G = rmedge(G,3);
G.Edges
ans=4×1 table
         EndNodes     
    __________________

    {'BOS'}    {'NYC'}
    {'NYC'}    {'LAX'}
    {'NYC'}    {'LAS'}
    {'LAX'}    {'DCA'}

この例では、グラフからすべての自己ループを削除する方法を説明します。自己ループとはノードをそのノード自体に連結するエッジです。

自己ループを 2 つもつグラフを作成します。

G = graph([1 1 1 2],[1 2 3 2]);
plot(G)

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

rmedge を使用してグラフからすべての自己ループを削除します。G には自己ループが 2 つしかありませんが、この手法では任意の有向グラフまたは無向グラフからすべての自己ループが削除されます。

G = rmedge(G, 1:numnodes(G), 1:numnodes(G));
plot(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])

ノード ペア。ノード インデックスまたはノード名の個別の引数として指定します。s および t に同じように配置された要素は、グラフ エッジのソース ノードおよびターゲット ノードを指定します。

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

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

スカラー

例: 1

ベクトル

例: [1 2 3]

ノード名

文字ベクトル

例: 'A'

文字ベクトルの cell 配列

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

string スカラー

例: "A"

string 配列

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

例: G = rmedge(G,1,2) は、グラフ G からノード 1 とノード 2 の間のエッジを削除します。

例: G = rmedge(G,{'a' 'b'},{'d' 'c'}) は、グラフ G からエッジを 2 本削除します。その最初のエッジはノード 'a' とノード 'd' の間にあります。

エッジ インデックス。スカラーまたはベクトルとして指定します。エッジ インデックスは非負の整数であり、テーブル G.Edges の行番号です。

例: G = rmedge(G,[1 3 5]) は、G.Edges から 1 番目、3 番目、5 番目のエッジ (行) を削除します。

出力引数

すべて折りたたむ

出力グラフ。graph オブジェクトまたは digraph オブジェクトとして返されます。

拡張機能

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

バージョン履歴

R2015b で導入