将 Eigen::ArrayXXd 转换为 Eigen::MatrixXd

Convert Eigen::ArrayXXd to Eigen::MatrixXd

如何将 ArrayXXd 数组转换为 MatrixXd? 到目前为止我已经完成

MatrixXd temp_mat = my_array;

并且隐式转换似乎工作正常,但这是应该完成的方式吗?或者我应该做一些明确的转换操作吗?

是的,隐式转换旨在像您所做的那样工作。

如果你想"view"一个Array作为Matrix而不实际复制它,你可以使用.matrix()方法。例如,

ArrayXXd A;
VectorXd v;

VectorXd r = A.matrix() * v; // matrix vector product

有一个与此方法相反的方法,称为 .array()

这在 the tutorial on the Array class 的 "Converting between array and matrix expressions" 部分有更详细的描述。