FormationControlSimulation/SOURCE/networks-toolbox/numEdges.m

22 lines
666 B
Matlab

% Return the total number of edges given the adjacency matrix
% INPUTs: adjacency matrix, nxn
% OUTPUTs: m - total number of edges/links
%
% Note: Valid for both directed and undirected, simple or general graph
% Other routines used: selfLoops.m, isSymmetric.m
% GB, last updated Sep 19, 2012
function m = numEdges(adj)
sl=selfLoops(adj); % counting the number of self-loops
if isSymmetric(adj) && sl==0 % undirected simple graph
m=sum(sum(adj))/2;
elseif isSymmetric(adj) && sl>0
m=(sum(sum(adj))-sl)/2+sl; % counting the self-loops only once
elseif not(isSymmetric(adj)) % directed graph (not necessarily simple)
m=sum(sum(adj));
end