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