我想在MATLAB中创建一个随机邻接矩阵,使得权重的总和等于边数。最后使用
找到拉普拉斯矩阵L = diag(sum(A)) - A
然后绘制图形。有没有办法这样做? 提前谢谢。
答案 0 :(得分:6)
无向图的邻接矩阵只是一个方形对称矩阵 如果你对权重的节点程度没有限制,那么就像我建议的那样
n ; % number of nodes in the graph
density = 1e-3; % a rough estimate of the amount of edges
A = sprand( n, n, density ); % generate adjacency matrix at random
% normalize weights to sum to num of edges
A = tril( A, -1 );
A = spfun( @(x) x./nnz(A), A );
% make it symmetric (for undirected graph)
A = A + A.';
我在这段代码中使用过: