c++ - 如何从特征矩阵映射/构建 C++ vector ?

标签 c++ eigen stdvector

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/

相关文章:

c++ - Eigen 库和 C++ 链接器的问题

c++ - 使用全局声明的 vector 时 C++ 中的双重错误/损坏

c++ - 如何分配原子类型的 vector ?

c++ - 为什么需要 sleep(1) 来让 socket 耗尽?

c++ - 如何将 WndProc 用作类函数

c++ - 具有两个 cpp_int 值的 boost::multiprecision::pow

c++ - 为什么我不能在 Eigen3 中消除这个临时变量?

c++ - 在 Rcpp 中为 Galerkin 矩阵使用 Eigen c++ 库的问题

c++ - 在初始化时预填充 std::vector?

c++ - 如果在可变参数模板解包中达到终止函数,则异常