我有一些問題測試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. 在MATLAB中生成隨機加權鄰接矩陣
- 3. 在Matlab中用另一個矩陣生成隨機矩陣
- 4. 從鄰接矩陣中刪除頂點的好方法
- 5. 隨機移動矩陣中的點在matlab中
- 6. 在matlab中刪除矩陣的行
- 7. java或C++中的鄰接矩陣找到連接節點
- 8. 在矩陣中添加一個隨機數MATLAB
- 9. Matlab的生成多個隨機矩陣
- 10. 從matlab中刪除矩陣中的零
- 11. 如何合併節點給定一個鄰接矩陣
- 12. numpy中的隨機一個熱矩陣
- 13. 在較大的矩陣中刪除相同的子矩陣。 Matlab
- 14. 在隨機矩陣中消除重複
- 15. 如何從r中的鄰接矩陣着色節點和邊?
- 16. 從矩陣中刪除一列隨機數
- 17. 如何生成隨機3D圖並在matlab中顯示其相鄰矩陣
- 18. 鄰接矩陣
- 19. 如何從鄰接矩陣MATLAB
- 20. 刪除矩陣列 - MATLAB
- 21. 從矩陣MatLab中刪除列
- 22. 矩陣的隨機交換列:Matlab的
- 23. 矩陣的Matlab隨機元素
- 24. MATLAB圖形網絡的隨機矩陣
- 25. MATLAB:如何隨機化矩陣的行?
- 26. 從matlab中給出的歐幾里得距離矩陣的鄰接矩陣
- 27. matlab將鄰接矩陣轉換爲鄰接表
- 28. 在鄰接矩陣中,如何找到給定頂點的鄰居的鄰居?
- 29. 在matlab中爲矩陣中的每個點計算最近鄰居
- 30. 如何在matlab中生成一個隨機矩陣,每個值重複兩次?
你絕對是個好人,我寫得不是太多,而且我寫得很短!感謝您的好回答:) – 2014-10-29 16:37:40