[英]Performing Matrix Vector Product using Eigen library in C++
当我的变量的日期类型采用Eigen::MatrixXd
和Eigen::VectorXd
形式时,如何使用 C++ 中的Eigen
库和“for 循环”执行矩阵向量积?
注意:我不想使用直接将矩阵与向量相乘的内置* operator
,我想使用 for 循环并自己执行元素明智的操作
当我尝试对Eigen::MatrixXd
和Eigen::VectorXd
进行元素明智的乘法时,出现错误。
我不知道你遇到了什么问题。 这是一个可能有帮助的例子。
// mat: 3x4 vec_h: 4x1
Eigen::MatrixXd mat = Eigen::MatrixXd::Ones(3,4);
Eigen::VectorXd vec_h = Eigen::VectorXd::Random(4);
// mat.row(i): 1x4
// mat.row(i).transpose(): 4x1
// cwiseProduct() element-wise multiplication
// add .eval() because we are changing the element value in place.
for (int i = 0; i < mat.rows(); ++i) {
mat.row(i)=mat.row(i).transpose().cwiseProduct(vec_h).eval();
}
如果您正在寻找更多信息,这里是链接Eigen: The Array class and coefficient-wise operations
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.