繁体   English   中英

本征稀疏矩阵乘法似乎可以计算完整矩阵

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM