特征稀疏矩阵乘法似乎计算全矩阵

时间:2014-11-24 15:01:44

标签: c++ sparse-matrix eigen

我试图乘以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();

这适用于小矩阵,但对于较大的矩阵,它只运行和运行,并且有一个seg故障的十次崩溃。 Matlab中的相同内容需要几秒钟。所以,我想知道它是否试图将整个矩阵保持在某个地方。如果确实如此,那真是太糟糕了!我查看了文档,并且这样做是建议在运行中修剪矩阵。

1 个答案:

答案 0 :(得分:0)

基本上,该文件至少让我感到困惑。

这样做的方法很简单:

SpMat mat_3 = mat_1 * mat_2

沿途没有创建密集矩阵。

特征岩石!