Main Content

addedge

新しいエッジをグラフに追加

説明

H = addedge(G,s,t) は、グラフ G のノード st の間にエッジを追加します。s または t で指定されるノードが G に存在していない場合、そのノードが追加されます。新しいグラフ HG と同等ですが、新しいエッジと、必要な新しいノードを含みます。

H = addedge(G,s,t,w) は、st の間のエッジの重み w も指定します。

H = addedge(G,s,t,EdgeTable) は、ノード st の間に、table EdgeTable で指定される属性をもつエッジを追加します。

H = addedge(G,EdgeTable) は、table EdgeTable で指定される属性をもつエッジを追加します。EdgeTable の入力は、G.Edges と連結可能でなければなりません。

すべて折りたたむ

新しい 2 本のエッジを既存のグラフに追加します。新しいエッジの 1 本が参照するノードは存在しないため、addedge は自動的に、必要な 4 番目のノードをグラフに追加します。

G = graph([1 2],[2 3])
G = 
  graph with properties:

    Edges: [2x1 table]
    Nodes: [3x0 table]

G = addedge(G,[2 1],[4 3])
G = 
  graph with properties:

    Edges: [4x1 table]
    Nodes: [4x0 table]

重み付きエッジをもつ有向グラフを作成します。

G = digraph({'A' 'B' 'C'}, {'D' 'C' 'D'}, [10 20 45])
G = 
  digraph with properties:

    Edges: [3x2 table]
    Nodes: [4x1 table]

3 本の新しい重み付きエッジをグラフに追加します。addedge は、必要な新しいノードも自動的にグラフに追加します。

G = addedge(G, {'A' 'D' 'E'}, {'E' 'B' 'D'}, [5 30 5])
G = 
  digraph with properties:

    Edges: [6x2 table]
    Nodes: [5x1 table]

属性 Weight および Power をもつエッジを含むグラフを作成します。エッジ テーブルを使用してグラフを作成します。

EdgeTable = table([1 2; 2 3; 2 4; 2 5; 5 6; 5 7; 5 8], ...
    {'on','off','off','on','on','on','off'}',[10 20 20 10 10 10 20]', ...
    'VariableNames',{'EndNodes','Power','Weight'});
G = graph(EdgeTable)
G = 
  graph with properties:

    Edges: [7x3 table]
    Nodes: [8x0 table]

G.Edges に連結可能なより小さい table を作成して、2 本の新しいエッジをグラフに追加します。この小さい table 内の変数の順序は、G.Edges と同じでなければなりません。

NewEdges = table([5 9; 3 6], {'on' 'off'}', [10 20]', ...
    'VariableNames',{'EndNodes','Power','Weight'});
G = addedge(G,NewEdges)
G = 
  graph with properties:

    Edges: [9x3 table]
    Nodes: [9x0 table]

グラフの新しいエッジ リストを表示します。追加されたエッジが含まれています。

G.Edges
ans=9×3 table
    EndNodes     Power     Weight
    ________    _______    ______

     1    2     {'on' }      10  
     2    3     {'off'}      20  
     2    4     {'off'}      20  
     2    5     {'on' }      10  
     3    6     {'off'}      20  
     5    6     {'on' }      10  
     5    7     {'on' }      10  
     5    8     {'off'}      20  
     5    9     {'on' }      10  

入力引数

すべて折りたたむ

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

例: G = graph(1,2)

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

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

グラフにまだ存在しないノード名を使用してエッジを追加すると、addedge はこの新しいノード名を g.Nodes.Name の table の最下部に追加します。st が categorical 配列の場合、st のカテゴリがノード名として使用されます。これには、s または t の要素ではないカテゴリが含まれる場合があります。

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

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

スカラー

例: 1

ベクトル

例: [1 2 3]

ノード名

文字ベクトル

例: 'A'

文字ベクトルの cell 配列

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

string スカラー

例: "A"

string 配列

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

categorical 配列

例: categorical("A")

categorical 配列

例: categorical(["A" "B" "C"])

例: G = addedge(G, [1 2], [3 4]) はグラフにエッジを 2 本追加します。1 本はノード 1 からノード 3、もう 1 本はノード 2 からノード 4 までです。

例: G = addedge(G, {'a' 'a'; 'b' 'c'}, {'b' 'c'; 'c' 'e'}) はグラフにエッジを 4 本追加し、最初のエッジは 'a' から 'b' までです。

エッジの重み。スカラー、ベクトルまたは行列として指定します。

  • w がスカラーまたは行ベクトルである場合、スカラー拡張され、s および t の各エッジの重みを指定します。

  • w が列ベクトルである場合、その長さは s(:) および t(:) と同じでなければなりません。

  • w が行列である場合は、s(:) および t(:) と同じ要素数でなければなりません。

例: G = addedge(G, [2 2], [4 5], [1 100]') は、それぞれ重みが 1100 の 2 本のエッジを追加します。

データ型: single | double
複素数のサポート: あり

エッジの属性。table として指定します。追加するグラフ エッジの定義に st を指定しない場合、EdgeTable の最初の変数は、追加するグラフ エッジを定義する EndNodes という 2 列の行列でなければなりません。

EdgeTable には、次の一般的なプロパティがなければなりません。

  • 重み付きグラフの場合、EdgeTable には変数 Weight が含まれていなければなりません。

  • グラフがエッジの他の属性ももつ場合、互換性を確保するために、EdgeTableG.Edges に含まれるすべての変数を含まなければなりません。

  • EdgeTable の変数の順序は、G.Edges と同じでなければなりません。

データ型: table

出力引数

すべて折りたたむ

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

拡張機能

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

バージョン履歴

R2015b で導入

すべて展開する