2016-10-22 81 views
1

具有外部行主矩陣A(mxn)並且已經爲結果創建了外部行主矩陣B(nxm)我做的轉置:如何計算特徵中外部行主矩陣的轉置

Map<MatrixXd,RowMajor> (B,n,m) = Map<MatrixXd,RowMajor> (A,m,n).transpose() 

其中A和B指向數據緩衝區。這在col-major矩陣的默認情況下工作正常,但對於行主矩陣,結果僅對於m == n是正確的,對於數字是傾斜的。我是否誤解了如何映射行主要的外部數據?

回答

2

Map的第二個模板參數用於對齊控制。行主佈局必須通過矩陣類型指定:

typedef Matrix<double,Dynamic,Dynamic,RowMajor> RowMajorMatrixXd; 
Map<RowMajorMatrixXd>(B,n,m) = Map<RowMajorMatrixXd>(A,m,n).transpose() 
+0

我試過了,它的工作原理,你回答了我的問題。 –

+0

不幸的是,這樣RowMajorMatrixXd和MatrixXd是兩種不同的類型,並且將它們抽象出來是不可能的,也就是說,使方法無差別地作爲參數被採用。 –