How get adjacency matrix from this code
1 view (last 30 days)
Show older comments
N = input('no. of Nodes');
p = input('Give the possibility');
m = (n*(n-1))/2;
degree=zeros(N,1);
position=zeros(N,2);
for m=1:N
position(m,1)=cos(m/N*2*pi);
position(m,2)=sin(m/N*2*pi);
end
hold on;
plot(position(:,1),position(:,2),'d')
for m=1:N
for n=m+1:N
if(rand(1,1)<p)
degree(m,1)=degree(m,1)+1;
degree(n,1)=degree(n,1)+1;
plot(position([m,n],1),position([m,n],2))
end
end
end
hold off;
0 Comments
Answers (1)
Stephan
on 31 Oct 2020
Edited: Stephan
on 31 Oct 2020
I would recommend to use the inbuilt functions for working with graphs - it makes life much easier:
N = input('no. of Nodes');
p = input('Give the possibility');
% Make adjacency matrix
idx = find(triu(ones(N),1));
V = rand(((N-1)*N)/2,1)<p;
A = zeros(N);
A(idx) = V;
A = A + triu(A,1)';
% create and plot undirected graph object
g = graph(A)
plot(g)
A good start for reading is here:
4 Comments
Walter Roberson
on 1 Nov 2020
https://www.mathworks.com/help/matlab/ref/matlab.graphics.chart.primitive.graphplot.layout.html#d122e485652
See Also
Categories
Find more on Graph and Network Algorithms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!