[英]How to dump non-zero elements of a sparse matrix into a non-sparse matrix
我本來也問過如何將稀疏矩陣轉儲到CSV基本上我有一個表示為稀疏矩陣的圖形,我想將圖形導出為CSV以在Gephi中打開它。 所以我的稀疏矩陣是這樣的:
(23,35) 1
(35,78) 1
(78,23) 1
等等
我想把它轉換成一個矢量,如: [23,35,1;35,78,1;78,23,1]
我很想知道這是一個簡單的單行程,但我不能讓我的大腦找到它,所以非常感謝你的幫助。
如果您另外知道將在文件中生成的sparse2csv('graph.csv',Adj)
:
23,35,1
35,78,1
78,23,1
那也行得通。
想到的方式不是單行(雖然它可以很容易地通過函數創建一個)但只是使用兩個函數調用: find
和nonzeros
:
A = sparse([23;35;78],[35;78;23],[1;1;1]);
[r,c] = find(A~=0);
v = nonzeros(A);
compact = [r,c,v];
disp(compact);
返回
78 23 1
23 35 1
35 78 1
正如Luis Mendo在評論中指出的那樣,存在一個更簡單的解決方案,因為find
將在第三個輸出參數中返回非零值(給定的數組現在不再合乎邏輯):
[r,c,v] = find(A);
compact = [r,c,v];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.