How to find graph density in MATLAB for a given graph G?

I want to find the density of a graph in matlab. Is there any function to find that? Thanks.

 Akzeptierte Antwort

Kelly Kearney
Kelly Kearney am 2 Jul. 2021
You can simply calculate the number of non-zero elements relative to total elements in the adjacency matrix:
nnz(adjacency(G))./numel(adjacency(G))

3 Kommentare

Thanks! Yes that works. Here is another version that I did which gives almost similar result:
num_edges = height(G.Edges); % number of edges
num_nodes = height(G.Nodes); % number of nodes
% http://reference.wolfram.com/language/ref/GraphDensity.html
graph_density = num_edges/num_nodes /(num_nodes -1)*2; % for directed graph remove factor 2
You can use the numnodes and numedges functions on a graph or digraph to get the numbers of nodes or edges respectively.
Great, thanks. So this one works too:
%http://reference.wolfram.com/language/ref/GraphDensity.html
graph_density = numedges(G)/numnodes(G) /(numnodes(G) -1)*2 %factor 2 for undirected, factor 1 for directed

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graph and Network Algorithms finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2021a

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by