[英]Eigen sparse matrix multiplications seem to compute full matrix
我正在嘗試將2個本征稀疏矩陣相乘。 代碼如下:
Eigen::SparseMatrix<float> SpMat;
SpMat mat_1;
mat_1.resize(n_e, n_e);
... Fill the matrix. It is sparse
SpMat mat_2;
mat_1.resize(n_e, n_e);
... Fill the matrix. It is sparse
SpMat mat_3 = (mat_1 * mat_2).pruned();
這適用於小型矩陣,但適用於較大的矩陣,它會連續運行並因段錯誤而崩潰十次。 Matlab中的同一件事需要花費幾秒鍾。 因此,我想知道它是否試圖將整個矩陣保留在某個位置。 如果確實如此,那真是太糟糕了! 我查看了文檔,並建議這樣做是為了快速修剪矩陣。
基本上,該文件至少對我來說是令人困惑的。
這樣做的方法很簡單:
SpMat mat_3 = mat_1 * mat_2
一路上沒有創建密集矩陣。
本征岩石!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.