例如,我有:
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 但无法正确执行。
单行如下:
points.array().colwise() *= scalars.array();
Run Code Online (Sandbox Code Playgroud)
因为数组操作总是按组件进行的。
我认为这.colwise().cwiseProduct(scalars)也应该有效,但显然不行。