优化 – Eigen3:系数乘法到位

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

是否

a = a.cwiseProduct(b);

到位了?或者是

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

在风格和性能方面更好的解决方案?

最佳答案 两个表达式都应该生成相同的代码(使用合理优化的编译器),因此它更像是一个品味问题.

如果你主要使用a和b进行元素操作,你应该将它们声明为Eigen :: Array(而不是Eigen :: Matrix)并且只写一个* = b;.如果以后需要以矩阵方式访问a或b,仍然可以使用a.matrix().

点赞