【发布时间】:2014-01-31 23:23:12
【问题描述】:
我正在使用 Eigen::Map 来获得从 C 数组创建对象的权限。我想将该对象保存为 MatrixXf 类型的成员变量。
我该怎么做?我找不到将地图转换为矩阵的方法。
谢谢。
【问题讨论】:
我正在使用 Eigen::Map 来获得从 C 数组创建对象的权限。我想将该对象保存为 MatrixXf 类型的成员变量。
我该怎么做?我找不到将地图转换为矩阵的方法。
谢谢。
【问题讨论】:
只需使用operator=:
MatrixXd mat;
mat = Map<MatrixXd>(data, rows, cols);
【讨论】:
我也遇到过同样的问题,但是向量是不变的,那么你必须按照@ggael建议的方式来做,
Eigen::MatrixXd mat = Eigen::Map<const Eigen::MatrixXd>(x.data(), rows, cols);
其中 x 可以是 const Eigen::VectorXd x 或 const std::vector<double> 或 C 类型数组。
【讨论】: