MATLAB ヘルプ センター
グラフに複数のエッジがあるかどうかを判別
tf = ismultigraph(G)
tf = ismultigraph(G) は、G の 2 つのノード間に複数のノードがある場合、logical 1 (true) を返します。その他の場合は logical 0 (false) を返します。
G
1
true
0
false
慣例により、ismultigraph は、自己ループを含むが、繰り返されるエッジのないグラフに対して logical 0 (false) を返します。ただし、複数の自己ループをもつグラフは多重グラフと見なされます。
ismultigraph
例
すべて折りたたむ
ismultigraph を使用して、入力グラフの 2 つのノード間に複数のエッジがあるかどうかを判別します。
グラフを作成します。
G = graph([1 1 1 1 1 2 2 2],[2 2 3 4 5 6 7 8]); plot(G)
G が多重グラフかどうかを確認します。ノード 1 とノード 2 の間に 2 本のエッジがあるため、結果は logical 1 (true) になります。
tf = logical 1
ismultigraph を使用して、グラフを簡略化する必要があるかどうかを判断します。
一般的に、空のグラフを作成し、プログラムで addedge を使用してエッジをそのグラフに追加すると、重複するエッジが発生します。重複を避けるためには、エッジに使用されるデータは一意でなければなりません。
addedge
これを示すために、1 つの空のグラフと、乱数の 2 つの列をもつ 1 つの行列を作成します。乱数は 1 ~ 5 のみであるため、このデータでは複数のエッジが作成されます。
G = graph; rng default % for reproducibility X = randi(5,15,2)
X = 15×2 5 1 5 3 1 5 5 4 4 5 1 4 2 1 3 5 5 5 5 4 1 4 5 4 5 2 3 4 5 1 ⋮
ソース データをクリーニングして行を一意にするのではなく、すべてのエッジをグラフに追加します。参照用にグラフをプロットします。
G = addedge(G,X(:,1),X(:,2)); plot(G)
テストしてグラフが多重グラフかどうかを確認します。多重グラフの場合は、simplify を使用して繰り返されるエッジと自己ループを削除します。
simplify
if ismultigraph(G) G = simplify(G); end
結果のグラフをプロットします。
plot(G)
graph
digraph
入力グラフ。graph オブジェクトまたは digraph オブジェクトとして指定します。無向グラフの作成には graph を、有向グラフの作成には digraph を使用します。
例: G = graph(1,2)
G = graph(1,2)
例: G = digraph([1 2],[2 3])
G = digraph([1 2],[2 3])
すべて展開する
backgroundPool
ThreadPool
R2018a で導入
simplify | graph | digraph | edgecount
edgecount
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ