2016-10-22 78 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是两种不同的类型,并且将它们抽象出来是不可能的,也就是说,使方法无差别地作为参数被采用。 –