#c #eigen
Вопрос:
В принципе, как мне это сделать
Eigen::RowVectorXd param(2);
param << 1.0, 2.0;
double last_element = param.tail(1); // error: no suitable conversion...
Я знаю, что могу использовать .coeff()
, однако в моем коде некоторые векторы изменяются, поэтому размер априори неизвестен
Комментарии:
1. Чтобы исправить код, вы могли бы написать
double last_element = param.tail(1)[0]
. При этом выбирается первый элемент возвращаемого вектораtail()
, что позволяет присвоить значение double. Лучшие решения даны в ответе @mattlangford.
Ответ №1:
Сработало бы что-то подобное:
Eigen::RowVectorXd param(2);
param << 1.0, 2.0;
double last_element = param(param.size() - 1);
или даже лучше, используя собственное last
значение:
double last_element = param(Eigen::last);