将 Eigen Vector/Matrix 中的元素转换为原始双精度类型

Cast an element in Eigen Vector/Matrix to a primitive double type

基本上我该怎么做

Eigen::RowVectorXd param(2);
param << 1.0, 2.0;
double last_element = param.tail(1); // error: no suitable conversion...

我知道我可以使用 .coeff() 但是在我的代码中一些向量正在调整大小,因此大小是先验未知的

像这样的东西行得通吗:

    Eigen::RowVectorXd param(2);
    param << 1.0, 2.0;
    double last_element = param(param.size() - 1);

甚至更好,使用 Eigen 提供的 last 值:

    double last_element = param(Eigen::last);