我想知道是否有一种高效简洁的方法来对 Armadillo C++ 矩阵的每一行(或列)与 vector 进行逐元素乘法。行(或列)和 vector 大小相同。
例如,如果 fmat::each_row()(和/或 each_col())可以用作右值,我想要这样的东西来编译(目前它不会编译):
#include <armadillo>
int main()
{
using namespace arma;
fmat m(20, 10);
fvec v(10); // a column vector
m.each_row() % v.t(); // Currently a compiler error.
return 0;
}
最佳答案
从 Armadillo 5.6 版开始,.each_col()
和 .each_row()
方法被扩展以处理异地操作。因此,您建议的方法
m.each_row() % v.t();
关于c++ - Armadillo C++ : Efficient and concise way to multiply every row of a matrix by a vector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21889566/