在 Eigen c++ 中,如何将 NxM 矩阵的每一行乘以 Nx1 标量向量?

som*_*dy4 2 c++ eigen3

例如,我有:

Matrix<double,5,2,RowMajor> points;
Matrix<double,5,1> scalars;
Run Code Online (Sandbox Code Playgroud)

我想要的相当于:

for(int i=0;i<5;++i){
  points.row(i)*=scalars(i);
}
Run Code Online (Sandbox Code Playgroud)

有没有 oneliner 可以实现这个目标?

我已经尝试过 rowwise 和 array 但无法正确执行。

Pet*_*erT 5

单行如下:

points.array().colwise() *= scalars.array();
Run Code Online (Sandbox Code Playgroud)

因为数组操作总是按组件进行的。

我认为这.colwise().cwiseProduct(scalars)也应该有效,但显然不行。