因为这个问题有点长,所以在这里添加,我还想在向量中添加一行到Finald向量。
MatrixXf ProdA(7, 7);;
VectorXf Intd(7);
VectorXf Finald(7);
ProdA <<
7, 5, 1, 9, 11, 2, 0,
5, 2, 8, 3, 11, 3, 3,
3, 9, 0, 1, 3, 1, 7,
6, 0, 1, 9, 11, 33, 3,
3, 5, 3, 3, 4, 3, 3,
3, 9, 1, 1, 0, 1, 15,
6, 2, 6, 2, 5, 12, 3,
Intd << 4, 5, 2, 12, 4, 1, 6;
Finald << 0, 0, 0, 0, 0, 0, 0;
for (int i = 0; i < 7; i++){
Finald.row(i) += ProdA.rowwise().sum();
Finald.row(i) += Intd.row(i);
}
到目前为止,这就是我所拥有的。显然,如果我把我放在行中,我会收到错误。举个例子,我想将第一行ProdA和第一个Intd加到Finald向量的第一个空格中,然后循环遍历ProdA和Intd的每一行,并将它们全部加到Finald中。
提前致谢!
答案 0 :(得分:-1)
我不是100%确定我正确理解你的问题,但我理解它的方式,这应该有效:
VectorXf ones(7);
ones << 1, 1, 1, 1, 1, 1, 1;
Finald = ProdA * ones + Intd;
我不确定你的矩阵库(似乎是Eigen)是否将向量存储为行或列向量。因此,您可能不得不使用ones.transpose()
。