2
我想在MATLAB中創建一個隨機鄰接矩陣,使得權重的總和等於邊的數量。最後找到拉普拉斯矩陣使用在MATLAB中生成隨機加權鄰接矩陣
L = diag(sum(A)) - A
然後對其進行圖示。有沒有辦法做到這一點? 在此先感謝。
我想在MATLAB中創建一個隨機鄰接矩陣,使得權重的總和等於邊的數量。最後找到拉普拉斯矩陣使用在MATLAB中生成隨機加權鄰接矩陣
L = diag(sum(A)) - A
然後對其進行圖示。有沒有辦法做到這一點? 在此先感謝。
無向圖的鄰接矩陣只是一個方形對稱矩陣。
如果您對節點僅在權重的程度沒有約束比我建議像
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.';
我在此代碼中使用:
聽起來像家庭作業。你究竟在掙扎着什麼?鄰接矩陣的創建,拉普拉斯矩陣的計算還是圖形? – ARF
有向圖?無向圖?節點的程度?邊數? – Shai
感謝您的回覆。 @阿里克,它以某種方式讓我寫一個學期的項目。我實際上不知道如何創建一個隨機加權的鄰接矩陣,使得總權重等於圖中邊的數量。那麼他們中的一些人的體重可能會比其他人小一些。其餘的將很容易找到拉普拉斯矩陣,圖,...。假設它是無向的,我們可以通過知道鄰接矩陣的一行中有多少個非零項來找到度節點。對我來說主要問題是我上面提到的。 – Royeh