%% *****************生成随机图*************************** % 输入参数 : 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