我有一个Nx3特征矩阵。
我有一个Nx1 Egein marix。
我试图将Nx3中每一行的系数乘以Nx1中相应的标度,以便可以缩放一堆3d vector 。
我敢肯定,我忽略了一些显而易见的事情,但我无法使其正常工作。
#include <Eigen/Dense>
MatrixXf m(4, 3);
m << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
MatrixXf dots(4, 1)
dots << 2,2,2,2;
我想像这样使矩阵为Nx3:
2,4,6
8,10,12,
14,16,18,
20,22,24
最佳答案
您可以使用广播:
m = m.colwise().cwiseProduct(dots);
或观察到您要做的就是应用非均匀缩放:
m = dots.asDiagonal() * m;
这两个表达式将生成相似的代码。