将Eigen :: MatrixXf转换为2D std :: vector

时间:2015-03-24 20:40:48

标签: eigen eigenvector

有没有比点对点复制值更优雅的解决方案?!
这样的东西适用于一维矢量...

vector<float> vec(mat.data(), mat.data() + mat.rows() * mat.cols());

我尝试了GCC编译器为vector&lt;矢量&gt;但没有成功......

1 个答案:

答案 0 :(得分:1)

Eigen::MatrixXf使用高效的线性内存,而vector的{​​{1}}代表一种非常不同的数据类型。

对于多维数据向量,您必须逐块读取矩阵并将这些值复制到最外面的向量。

另一种方法是将值复制到具有特定访问器的基于vector的类......但最终会重建类似Matrix的类。

你为什么要这样做?您尝试提供什么样的访问权限?也许你应该尝试使用vector接口

进行类似的访问

转换

eigen::matrix