如何解决Eigen3:将动态矩阵转换为静态矩阵
是否可以将动态矩阵转换为静态矩阵,如果是,最佳解决方案是什么? 示例:
Eigen::MatrixXd a = Eigen::Matrixxd::Zero(4,4);
到
Eigen::Matrix<double,a.rows(),a.cols()> b = a; //?
干杯!
解决方法
Matrix 的三个必选模板参数是:
矩阵
RowsAtCompileTime 和 ColsAtCompileTime 是编译时已知的 > 矩阵的行数和列数
当您使用 Eigen::MatrixXd
时,
RowsAtCompileTime 和 ColsAtCompileTime 模板参数可以采用特殊值 Dynamic 表示大小在编译时未知,因此必须作为运行时变量处理
鉴于编译时 a
的大小未知,您无法获得 a.rows()
的值。
鉴于您在编译时知道 a
的大小,您应该使用 Eigen::Matrix
而不是 Eigen::MatrixXd
。但是,如果您不知道 a.rows()
或 a.cols()
,则必须将 b
声明为 Eigen::MatrixXd
。您不能使用 Eigen::Matrix
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。