【问题标题】:Eigen Matrix library coefficient wise manipulation [duplicate]特征矩阵库系数明智操作
【发布时间】:2016-02-17 17:14:34
【问题描述】:

我可以就矩阵库“Eigen”的计算问题寻求帮助。

说我有一个函子:

    struct my_F
    {
      double a_,b_;
      my_F(double a,double b):a_(a),b_(b){};
      double operator()(double x){return (x+a)*(x+b);}
    }

现在我想用这个函子对 Eigen::MatrixXd 进行操作

Eigen::MatrixXd a(10,12);
a.setConstant(2.); 

我如何写一些东西(以一种紧凑而漂亮的方式),以便获取“a”的每个元素并对其应用仿函数操作。

我总是可以循环执行,但这是唯一的出路吗?

提前致谢。

【问题讨论】:

  • 在 Eigen 的文档中查找 unaryExpr

标签: c++ eigen


【解决方案1】:

您可以将unaryExpr 应用于您的矩阵:

Eigen::MatrixXd M(10,12);
//fill matrix M

auto f = my_F{1.0,2.0};
auto M_new = M.unaryExpr(f);

请注意,转换M_new 的结果不会被存储,而是动态评估(与表达式模板库中的往常一样)。如果要存储结果,请将“auto M_new”替换为“Eigen::MatrixXd M_new”。

【讨论】:

  • 非常感谢。这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多