从具有行主顺序的数组创建特征矩阵

时间:2015-02-25 15:27:59

标签: c++ matrix eigen

我有一系列双打,我想用Eigen库创建一个4乘4的矩阵。我还想指定数据以行主顺序存储。我怎么能这样做?

我尝试了以下内容,但它没有编译:

double data[16];
Eigen::Matrix4d M = Eigen::Map<Eigen::Matrix4d>(data, 4, 4, Eigen::RowMajor);

1 个答案:

答案 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的正确类型复制到行主矩阵。