我有一系列双打,我想用Eigen库创建一个4乘4的矩阵。我还想指定数据以行主顺序存储。我怎么能这样做?
我尝试了以下内容,但它没有编译:
double data[16];
Eigen::Matrix4d M = Eigen::Map<Eigen::Matrix4d>(data, 4, 4, Eigen::RowMajor);
答案 0 :(得分:8)
您需要将行主矩阵类型传递给Map,例如:
Map<Matrix<double,4,4,RowMajor> > M(data);
然后你可以使用M作为特征矩阵,并且将修改数据的值,例如:
M = M.inverse();
如果要将数据复制到真正的列主要特征矩阵,请执行:
Matrix4d M = Map<Matrix<double,4,4,RowMajor> >(data);
当然,您也可以使用M的正确类型复制到行主矩阵。