特征:系数乘法到位

时间:2014-08-15 14:53:03

标签: optimization eigen eigen3

如何使用Eigen3执行元素乘法?

确实

a = a.cwiseProduct(b);

运行到位?或者是

a.array() *= b.array();

在风格和表现方面更好的解决方案?

1 个答案:

答案 0 :(得分:2)

这两个表达式应该生成相同的代码(使用合理优化的编译器),因此更多的是品味问题。

如果您主要使用ab执行按元素操作,则应将其声明为Eigen::Array(而不是Eigen::Matrix),然后只写a*=b; }。如果您稍后需要以矩阵方式访问ab,您仍然可以使用a.matrix()