4
我有一個MatrixXf變量和一個VectorXf變量。我想使用我的矩陣上的矢量進行行劃分。是否有可能做這樣的事情?本徵矩陣廣播操作
#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;
}
我期待得到值爲[0.5,0.667; 1.5,1.333; 2.5,2]。
非常感謝!
這解決了我上面的問題。雖然我有另一個廣播問題。可以根據文檔對+和 - 執行廣播操作,而不需要.array()語法。爲什麼我需要使用array()方法進行乘法和除法? – yc2986
@ yc2986引用文檔時,「Array類提供了通用數組,而不是用於線性代數的Matrix類」。加法和減法是爲線性代數定義的操作(參見[Wikipedia](https://en.wikipedia.org/wiki/Matrix_%28mathematics%29#Basic_operations)),而係數明智地乘法和除法矩陣或向量不是。 –