繁体   English   中英

将特征“ Transformation”类设置为柱后/右乘法的专业

[英]Setting eigen “Transformation” class as column major for post/right multiplication

我有一个函数可以对变换矩阵进行很多后/右乘法。现在我想将此函数转换为使用Eigen,问题是Eigen Transformation类将乘法作为前/左乘法。 这意味着在乘法过程中它具有行矩阵格式,而存储是列矩阵格式。

有没有办法将Eigen :: Transformation类成员从行专业更改为列专业?

本征Matrix类的完整签名为

Matrix<typename Scalar,
       int RowsAtCompileTime,
       int ColsAtCompileTime,
       int Options = 0,
       int MaxRowsAtCompileTime = RowsAtCompileTime,
       int MaxColsAtCompileTime = ColsAtCompileTime>

第四个参数Options描述为

选项是一个位字段。 在这里,我们只讨论一点: RowMajor 它指定这种类型的矩阵使用行优先存储顺序 默认情况下,存储顺序为“大列”。 请参阅有关存储订单的页面。 例如,此类型表示行优先的3x3矩阵

举例来说,

Matrix<int, 3, 4, ColMajor> foo;    // column major
Matrix<int, 4, 3, RowMajor> bar;    // row major

有关存储订单的更多文档

如果您要引用的转换是Eigen::Transform则它还具有一个Options模板参数,您还可以传递RowMajor vs ColMajor 它产生的任何矩阵都将遵循您指定的相同约定。

Transform<typename Scalar,
          int Dim,
          int Mode,
          int _Options = AutoAlign>

再次将_Options参数描述为

_OptionsMatrix类具有相同的含义。 它允许指定DontAlign和/或RowMajor 这些Options直接传递给基础矩阵类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM