How get adjacency matrix from this code
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Stephan
am 31 Okt. 2020
Bearbeitet: Stephan
am 31 Okt. 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 Kommentare
Walter Roberson
am 1 Nov. 2020
https://www.mathworks.com/help/matlab/ref/matlab.graphics.chart.primitive.graphplot.layout.html#d122e485652
Siehe auch
Kategorien
Mehr zu Graph and Network Algorithms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!