我有一些問題測試Barabassi albert scale free graph。
我想隨機刪除節點,看看這個模型對於刪除節點有多強壯(隨機)?
我有鄰接矩陣adj
。如何在matlab中隨機刪除節點?在matlab中刪除一個鄰接矩陣中的隨機節點
2
A
回答
4
Ander's answer是相當不錯的,但我有一些保留
randi
可以返回相同的指數超過一次。例如,>> randi(10,1,5) ans = 6 3 10 6 2
返回
6
兩次。因此它可以減少來自矩陣的減去比n
元素。- 選擇哪些元素應該保留在矩陣中比構造完整的矩陣並丟棄其中的元素更有效:您實際上在每個命令處複製大部分矩陣。
因此,我的解決方案將使用randsample
:
N = size(adj,1); %// current number of nodes
toKeep = N - n; %// n is number to remove
idx = randsample(N, toKeep); %// sample WITHOUT replacement
newadj = adj(idx, idx); %// copy only the relevant elements
2
編輯:@Shai's answer比我的更好,並顯示我的錯誤。這是真正的好答案。
如果我沒有錯:鄰接矩陣是一個Npoints X Npoints
矩陣,每個節點顯示哪個節點是相鄰的。
我想如果你想刪除隨機點,你需要刪除該點的行和列。
% n is number of points that you want to delete
% adj is the adjacency matrix
idx=randi(size(adj,1),n)
newadj=adj;
newadj(idx,:)=[];
newadj(:,idx)=[];
相關問題
- 1. 在鄰接矩陣中形成一個循環的節點(Matlab)
- 2. 從鄰接矩陣中刪除頂點的好方法
- 3. java或C++中的鄰接矩陣找到連接節點
- 4. 在矩陣中添加一個隨機數MATLAB
- 5. 如何合併節點給定一個鄰接矩陣
- 6. 在較大的矩陣中刪除相同的子矩陣。 Matlab
- 7. 從矩陣中刪除一列隨機數
- 8. 如何生成隨機3D圖並在matlab中顯示其相鄰矩陣
- 9. 鄰接矩陣
- 10. 刪除矩陣列 - MATLAB
- 11. 從矩陣MatLab中刪除列
- 12. 矩陣的Matlab隨機元素
- 13. matlab將鄰接矩陣轉換爲鄰接表
- 14. 在matlab中爲矩陣中的每個點計算最近鄰居
- 15. 在Matlab中連接兩個矩陣
- 16. Matlab - 爲矩陣生成隨機座標
- 17. 的R - 構建鄰接矩陣基於其它鄰接矩陣
- 18. 生成隨機對稱加權鄰接矩陣
- 19. 隨機矩陣在matlab中的特殊順序
- 20. 如何繪製Matlab中的連通性/鄰接矩陣?
- 21. 將GML文件轉換爲matlab中的鄰接矩陣
- 22. 如何根據一些標準在Matlab中刪除矩陣行?
- 23. 在鄰接表中刪除
- 24. 在鄰接矩陣中尋找路徑
- 25. 從MATLAB中的鄰接矩陣的所選行中找出X步內的所有邊(和節點)
- 26. 隨機選擇一個二進制矩陣 - Matlab
- 27. 當在Matlab中重複和隨機化一個矩陣時約束洗牌
- 28. 一個鄰接矩陣轉換成距離或跳矩陣
- 29. 在matlab中重塑一個矩陣
- 30. 在MATLAB中求解一個矩陣?
你絕對是個好人,我寫得不是太多,而且我寫得很短!感謝您的好回答:) – 2014-10-29 16:37:40