我有一个MatrixXf变量和一个VectorXf变量.我想使用我的矩阵上的Vector执行行划分.可以这样做吗?
#include <iostream>
#include "Eigen/Dense"
using namespace std;
using namespace Eigen;
int main() {
MatrixXf mat(3, 2);
mat << 1, 2,
3, 4,
5, 6;
VectorXf vec(2);
vec << 2, 3;
mat = mat.rowwise() / vec;
cout << mat << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我期望得到一个有价值的矩阵[0.5,0.667; 1.5,1.333; 2.5,2].
非常感谢你!
您需要使用矩阵和向量作为数组(而不是线性代数对象,请参阅文档).为此,您需要将相关行重写为:
mat = mat.array().rowwise() / vec.transpose().array();
cout << mat << endl; // Note that in the original this was vec
Run Code Online (Sandbox Code Playgroud)
根据定义,transpose需要作为VectorXf列向量,并且您需要行向量.