如何在 Eigen 中定义行优先稀疏向量

How to define a row-major sparse vector in Eigen

这应该是一个简单的问题,但文档没有帮助:我想在 Eigen 中定义一个稀疏向量,以便它以行优先格式存储。

这会产生一个列优先向量:

Eigen::SparseVector<float> vec;

我试过使用

typedef Eigen::Matrix<float, 1, Eigen::Dynamic> RowVector;
RowVector vec(size);

但稍后会遇到运行时问题。有没有一种简单的方法来定义动态大小的行优先稀疏向量?

SparseVector 的第二个模板参数是存储顺序(或者实际上是选项)。所以你会写 Eigen::SparseVector<float, Eigen::RowMajor> rowVec;。请参阅文档 here.