我有一個功能,做了很多後/右乘法的轉換矩陣。現在我想轉換此功能使用特徵和問題是特徵變換類將乘法作爲前/左乘法運算。這意味着它在乘法時具有行矩陣格式,而存儲是列矩陣格式。設置本徵「轉換」類作爲後/右乘法的列主要
有沒有一種方法可以將Eigen :: Transformation類成員從行主修改爲列專業?
我有一個功能,做了很多後/右乘法的轉換矩陣。現在我想轉換此功能使用特徵和問題是特徵變換類將乘法作爲前/左乘法運算。這意味着它在乘法時具有行矩陣格式,而存儲是列矩陣格式。設置本徵「轉換」類作爲後/右乘法的列主要
有沒有一種方法可以將Eigen :: Transformation類成員從行主修改爲列專業?
爲徵Matrix
類的完整簽名是
Matrix<typename Scalar,
int RowsAtCompileTime,
int ColsAtCompileTime,
int Options = 0,
int MaxRowsAtCompileTime = RowsAtCompileTime,
int MaxColsAtCompileTime = ColsAtCompileTime>
的第四個參數Options
是described as
選項是位字段。在這裏,我們只討論一個位:
RowMajor
。 它指定這種類型的矩陣使用行主存儲順序;默認情況下,存儲順序是列主要的。查看存儲訂單上的頁面。例如,這種類型是指行爲主的3x3矩陣
所以,你可以說,例如,
Matrix<int, 3, 4, ColMajor> foo; // column major
Matrix<int, 4, 3, RowMajor> bar; // row major
More documentation on Storage Orders
如果你指的是改造Eigen::Transform
這也有一個Options
模板參數,您也可以通過RowMajor
與ColMajor
。它產生的任何矩陣將遵循您指定的相同慣例。
Transform<typename Scalar,
int Dim,
int Mode,
int _Options = AutoAlign>
再次_Options
參數被描述爲
_Options
具有相同的含義如在Matrix
類。它允許指定DontAlign
和/或RowMajor
。 這些Options
直接傳遞到底層矩陣類型。
謝謝你的答案,不幸的是,我們沒有機會改變實際矩陣在轉換類中的構造方式。在這種情況下,你推薦什麼? – happycoder
如果您可以按照我特別要求的方式編輯Eigen :: Transform的答案,我很樂意將您的答案標記爲true。 – happycoder
你爲什麼說「它在乘法運算中有行矩陣格式」,爲什麼這會成爲一個問題? – ggael