簡體   English   中英

如何將稀疏矩陣的非零元素轉儲到非稀疏矩陣中

[英]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

那也行得通。

想到的方式不是單行(雖然它可以很容易地通過函數創建一個)但只是使用兩個函數調用: findnonzeros

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM