繁体   English   中英

C++中使用Eigen库进行矩阵向量积

[英]Performing Matrix Vector Product using Eigen library in C++

当我的变量的日期类型采用Eigen::MatrixXdEigen::VectorXd形式时,如何使用 C++ 中的Eigen库和“for 循环”执行矩阵向量积

注意:我不想使用直接将矩阵与向量相乘的内置* operator ,我想使用 for 循环并自己执行元素明智的操作

当我尝试对Eigen::MatrixXdEigen::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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM