例如,我有:

Matrix<double,5,2,RowMajor> points;
Matrix<double,5,1> scalars;
我想要的等同于:
for(int i=0;i<5;++i){
  points.row(i)*=scalars(i);
}
有没有能做到这一点的类轮?
我reareay尝试按行和数组,但不能正确处理。

最佳答案

单线如下:

points.array().colwise() *= scalars.array();

因为Array操作始终是基于组件的。

我以为.colwise().cwiseProduct(scalars)也应该起作用,但是显然不行。

10-06 15:41