[英]How to convert an Eigen sparse matrix into an array in C++ using the?
[英]Multiplying eigen sparse matrix with a C array
我有一个本征稀疏矩阵,我想将其乘以一个向量。 但是,由于整个对象的设计方式,我的向量存储在STL向量容器中。 所以,我有这样的事情:
std::vector<float> values;
Eigen::SparseMatrix<float> some_mat;
// fill the matrix and vector
....
float * vec = &values[0];
现在有一种方法可以执行以下操作:
some_mat * vec;
无需将向量复制到特征向量对象中。 如果没有办法解决复制问题,将STL向量或C数组复制到本征VectorXf对象的最有效方法是什么?
您可以将Eigen::Map
用于此目的:
VectorXd res = some_mat * VectorXf::Map(vec, size);
请注意, Map
对象是可读写的,因此res
也可以是Map
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.