MatrixXf A = MatrixXf::Random(3, 3);
MatrixXf B = A.row(1);
std::vector<float> vec;
我想用行特征矩阵“B”中的元素构建 vector “vec”。像这样的东西“vec=B.data()”
最佳答案
除了显而易见的答案(手动push_back
或者预分配+逐个索引赋值)之外,还可以直接使用::data返回的基指针进行初始化()
:
Eigen::MatrixXf A = Eigen::MatrixXf::Random(3, 3);
Eigen::MatrixXf B = A.row(1);
std::vector<float> vec(B.data(), B.data() + B.size());
请注意,Eigen 可能会使用内存对齐来利用 SSE 系列指令,因此它可能无法在更高维度上正常工作。
关于c++ - 如何从特征矩阵映射/构建 C++ vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45501888/