是否可以直接访问OuterStarts特征稀疏矩阵数组?

时间:2018-03-25 18:40:29

标签: eigen

我知道Eigen中的稀疏矩阵是用四个数组实现的: InnerIndices OuterStarts InnerNNZs 。有没有办法可以直接获得这些数组。如果没有,这样做的方法是什么?

一种实用的方法是在迭代稀疏矩阵时自己创建 OuterStarts 数组:

for(int k=0;k<mat.outerSize();++k)
{
    for(SparseMatrix<double>::InnerIterator it(mat,k);it;++it)
    {
        //add counter here and get index by it.row()
        cout << it.value() << endl;
    }
}

1 个答案:

答案 0 :(得分:2)

When in compressed form:

m.valuePtr() // non zero value array. Size is the number of non zeros 
m.outerIndexPtr() // array of outer indices. Size is the number of rows/columns
m.innerIndexPtr() // array of inner indices. Size is the number of non zeros