我有一个函数,做了很多变换矩阵的后/右乘法,.Now,我想把这个函数转换成使用特征,问题是特征变换类把乘法做了预/左乘法。这意味着它在乘法过程中有行矩阵格式,而存储是列矩阵格式。
是否有一种方法可以更改特征::将类成员从行专业转换为列专业?
发布于 2016-02-28 12:18:22
特征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
与ColMajor
。它生成的任何矩阵都将遵循您指定的相同约定。
Transform<typename Scalar,
int Dim,
int Mode,
int _Options = AutoAlign>
同样,_Options
参数被描述为
_Options
的含义与Matrix
类中的含义相同。它允许指定DontAlign
和/或RowMajor
。这些Options
直接传递给基础矩阵类型。
https://stackoverflow.com/questions/35687617
复制