簡體   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