生成随机图(MATLB)

%% *****************生成随机图***************************
% 输入参数 : n顶点数 , m是最大边数(实际生成的图的边数可能小于m)      //
% 输出: 随机图的邻接矩阵 adj                                                              //
% 功能:随机生成n个顶点的图,并画出图的网络                                        //
% 用于算法测试                                                                                    //
%%

function adj = randomGraph(n, m)
clf;

point = rand(n,1) + i*rand(n,1);                     % 随机生成 n 个点

E = [floor(1+rand(m,1)*n) floor(1+rand(m,1)*n)]; % 随机生成m条边

adj = zeros(n);                                  % 初始化邻接矩阵(0代表不关联,无权值)

for k = 1 : length(E)
    adj(E(k,1), E(k,2)) = 1;
end

adj = adj + adj';

plot([point(E(:,1)) point(E(:,2))].','-');
hold on
plot(point,'*');
for k = 1 : n
    text(real(point(k)),imag(point(k)),num2str(k));
end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值