gpt4 book ai didi

c++ - Eigen 如何进行动态矩阵和 vector 乘法?

转载 作者:行者123 更新时间:2023-11-28 04:25:18 25 4
gpt4 key购买 nike

我在做动态矩阵和 vector 点积时遇到了麻烦,令人惊讶的是,我没有让它找到任何解决方案,因为 Eigen 是一个流行的库。

所以代码真的很简单:

int k = 3;
MatrixXd m;
m.resize(k, k);
ArrayXd a;
a.resize(k);
std::cout << "Dot product: " << m*a << std::endl;

我遇到了错误

invalid operands to binary expression ('MatrixXd' (aka 'Matrix') and 'ArrayXd' (aka 'Array')) std::cout << "Dot product: " << m*a << std::endl;

我对进行动态矩阵和 vector 乘法是否可行感到困惑。同时,我发现 vector 和矩阵都有 .dot() 方法,所以该使用哪个,* 还是 .dot()对于点积?

最佳答案

您需要有矩阵,而不是矩阵和数组的混合体。您需要使用 .matrix()a 转换为数组(它是一个 View ,没有额外的计算成本)。

尝试:

std::cout << "Dot product: " << m*a.matrix() << std::endl;

关于c++ - Eigen 如何进行动态矩阵和 vector 乘法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54471362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com