有一个外部的行主矩阵A(m x n),并且已经为结果创建了外部的行主矩阵B(n x m),以便进行转置:
Map<MatrixXd,RowMajor> (B,n,m) = Map<MatrixXd,RowMajor> (A,m,n).transpose()
其中A和B指向数据缓冲区。这在col-major矩阵的默认情况下工作正常,但对于行主矩阵,结果仅对于m == n是正确的,对于m&lt;&gt;这些数字是不正确的。我是否误解了如何映射行主外部数据?
答案 0 :(得分:2)
Map
的第二个模板参数用于对齐控制。必须通过矩阵类型指定行主要布局:
typedef Matrix<double,Dynamic,Dynamic,RowMajor> RowMajorMatrixXd;
Map<RowMajorMatrixXd>(B,n,m) = Map<RowMajorMatrixXd>(A,m,n).transpose()