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

Kar*_*rus 5 c++ matrix eigen

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

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

double data[16];
Eigen::Matrix4d M = Eigen::Map<Eigen::Matrix4d>(data, 4, 4, Eigen::RowMajor);
Run Code Online (Sandbox Code Playgroud)

gga*_*ael 8

您需要将行主矩阵类型传递给Map,例如:

Map<Matrix<double,4,4,RowMajor> > M(data);
Run Code Online (Sandbox Code Playgroud)

然后你可以使用M作为特征矩阵,并修改数据的值,例如:

M = M.inverse();
Run Code Online (Sandbox Code Playgroud)

如果要将数据复制到真正的列主要特征矩阵,请执行以下操作:

Matrix4d M = Map<Matrix<double,4,4,RowMajor> >(data);
Run Code Online (Sandbox Code Playgroud)

当然,您也可以使用M的正确类型复制到行主矩阵.

  • 使用Dynamic并将大小传递给ctor:`Map <Matrix <double,Dynamic,Dynamic,RowMajor >>(data,nbRows,nbColumns);` (4认同)