【问题标题】:How do I compute the absolute value of a vector in Eigen?如何计算 Eigen 中向量的绝对值?
【发布时间】:2014-08-16 14:09:23
【问题描述】:

如何计算 Eigen 中向量的绝对值?由于显而易见的方式

Eigen::VectorXf v(-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0);
v.abs(); // Compute abs value.

不工作。

【问题讨论】:

  • 试试cout << v.abs() << endl :)
  • 你试过v = v.cwiseAbs();.

标签: c++ eigen absolute-value


【解决方案1】:

对于 Eigen 3.2.1,以与使用 p.normalize 相同的方式使用 p.abs(); 会导致编译器错误

错误:'Eigen::Matrix' p.abs() 中没有名为 'abs' 的成员; ~ ^

所以 Eigen 中的向量只不过是 Matrix 类型。要在 Eigen 中计算矩阵的绝对值,可以使用 p.cwiseAbs() 或数组转换 p.array().abs();。这两个绝对函数都返回一个值,而不是修改变量本身。

所以正确的做法是这样做

p = p.cwiseAbs();

或

p = p.array().abs();

【讨论】:

    猜你喜欢
    • 2015-11-02
    • 2012-08-16
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多