Как вычислить абсолютное значение вектора в Eigen? С очевидным способом
Eigen::VectorXf v(-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0);
v.abs(); // Compute abs value.
не работает.
Для Eigen 3.2.1 используется p.abs();
так же, как вы бы использовали p.normalize
приводит к ошибке компилятора в соответствии с
ошибка: нет члена с именем abs в ‘Eigen :: Matrix’ p.abs ();
~ ^
поэтому вектор в Eigen — это не что иное, как матричный тип. Для вычисления абсолютных значений матрицы в Eigen можно использовать p.cwiseAbs()
или преобразование массива p.array().abs();
, Обе эти абсолютные функции возвращают значение, а не изменяют саму переменную.
Таким образом, правильный способ сделать это будет сделать
p = p.cwiseAbs();
или же
p = p.array().abs();