C++ 特征稀疏矩阵与C数组的乘积
我有一个特征稀疏矩阵,我想用一个向量乘以它。然而,我的向量存储在STL向量容器中,因为整个东西的设计方式。所以,我有这样的想法:C++ 特征稀疏矩阵与C数组的乘积,c++,eigen,C++,Eigen,我有一个特征稀疏矩阵,我想用一个向量乘以它。然而,我的向量存储在STL向量容器中,因为整个东西的设计方式。所以,我有这样的想法: std::vector<float> values; Eigen::SparseMatrix<float> some_mat; // fill the matrix and vector .... float * vec = &values[0]; some_mat * vec; 无需将向量复制到特征向量对象中。如果无法复制,那么
std::vector<float> values;
Eigen::SparseMatrix<float> some_mat;
// fill the matrix and vector
....
float * vec = &values[0];
some_mat * vec;
无需将向量复制到特征向量对象中。如果无法复制,那么将STL向量或C数组复制到特征向量XF对象的最有效方法是什么?为此,您可以使用
eigen::Map
:
VectorXd res = some_mat * VectorXf::Map(vec, size);
请注意,Map
对象是读写的,因此res
也可以是Map