How to create random graph?

73 ビュー (過去 30 日間)
Deepthi B
Deepthi B 2021 年 5 月 10 日
コメント済み: Christine Tobler 2021 年 12 月 20 日
Hi ,
I want to check whether the network that I have obtained is a small world network or not. For that I have to find out the clustering coefficient and shortest path length of a random network with the same number of nodes and links in my network. Is it possible to find out?

採用された回答

Christine Tobler
Christine Tobler 2021 年 5 月 10 日
You can use
s = randi(n, e, 1);
t = randi(n, e, 1);
G = graph(s, t, [], n);
which will give you a graph with n nodes and e edges. Note that G may have multiple edges connecting the same two nodes, and may also have self-loops (edges connecting a node to itself). If you don't want repeating edges, use the following instead:
G = graph(true(n)); % Self-loops are possible
%G = graph(true(n), 'omitselfloops'); % Alternative without self-loops
p = randperm(numedges(G), e);
G = graph(G.Edges(p, :));
  5 件のコメント
Norbert Cyran
Norbert Cyran 2021 年 12 月 19 日
Why are you generating true matrix for nodes and random values for edges??
Christine Tobler
Christine Tobler 2021 年 12 月 20 日
Hi Norbert,
The true(n) matrix is an adjacency matrix that contains all possible edges in the graph (omitting self-loops or not depending if that option is used or not). Then, I'm choosing a random subset of those edges using the randperm function.

サインインしてコメントする。

その他の回答 (1 件)

Deepthi B
Deepthi B 2021 年 5 月 13 日
Thank You

カテゴリ

Help Center および File ExchangeGraph and Network Algorithms についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by