How to generate random graph of n vertices with random connections in matlab
39 次查看(过去 30 天)
显示 更早的评论
Hi I am interested in creating random undirected graph with n vertices and with random connections. This generated graph has to display its adjacency connections in a nxn matrix.I have tried this code but it is not working for my requirement.
n=input('No. of vertices')
c=input('Random connections')
MM=0; %arbitrary starting value
all_nums=1:n;
while MM ~=n*c
M = sparse([],[],[],n,n,n*c);
ctin = zeros(1,n);
for ii=1:n
noconnect=ctin>=c;
noconnect(ii)=true;
rem_nums = all_nums(~noconnect); % remaining numbers
rp=randperm(n-sum(noconnect));
rp = rem_nums(rp); % remaining numbers, hussled
if numel(rp)<c
break
else
r=rp(1:c);
end
M(ii,r)=1;
ctin(r)=ctin(r)+1;
end
MM=sum(ctin);
end
end
A= adjacency(M)
0 个评论
回答(3 个)
Luis De Medeiros
2016-7-29
编辑:Luis De Medeiros
2016-7-29
You can create an adjacency matrix with random 1's and 0's by doing the following:
G = round(rand(n));
G = triu(G) + triu(G,1)';
G = G - diag(diag(G));
5 个评论
Walter Roberson
2016-7-31
Please expand on what you mean by "E number links". Do you mean a total of E edges across the entire graph? Would a valid random graph be one in which all E edges were connected to the first vertex and the other vertices were either not connected or were connected to the first vertex?
Walter Roberson
2016-8-1
adj = spalloc(n, n, E);
idx = randperm(n * n, E);
adj(idx) = 1;
adj = min( adj + adj.', 1);
12 个评论
idris cinemre
2021-5-8
Is it possible to generate random RAN graph like attached fig. red dots indicate the RUs’ locations; black dots the routers/switches, green dot the CU location. RUs are only connected to a router, routers can be connected to each other and CU.
Walter Roberson
2021-5-8
First generate an appropriate connected graph for the Routers and switches only.
Then generate a bunch of other points, and calculate their nearest neighbour among the routers, and connect them to that neighbour.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graph and Network Algorithms 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!