注意:我正在使用 C++ 标准库,并将矩阵存储为多维 vector (请参见下面的示例)。
我无法找到在 C++ 中将两个矩阵相乘的合适函数。阐明我要做什么:
A = | a1 a2 | B = | b1 |
| a3 a4 | | b2 |
Result = | (a1 * b1 + a2 * b2) |
| (a3 * b1 + a4 * b2) |
显然我可以使用一个简单的算法来做到这一点,但我正在尝试寻找是否有一个函数可以做到这一点。
我在 C++ 中的具体示例:
#include <vector>
std::vector<std::vector<double>> A;
A.push_back({ 0.96, 0.56 });
A.push_back({ 0.01, 0.41 });
std::vector<std::vector<double>> B;
B.push_back({ 1.331749 });
B.push_back({ 1.0440705 });
Result = (A * B);
“结果”将是:
| 1.8631586 |
| 0.4413864 |
我应该如何进行上述操作?
最佳答案
不,C++ 库中没有用于 vector 乘法的函数。有一些构建 block ,如 std::for_each
、std::copy
和 std::transform
,可用于实现它们,但这取决于您自己实现完整的算法。
在 Intertubes 上的某个地方,可能有一些库在四处 float ,它们实现了这些算法。您可以使用 Google 试试运气。
关于c++ - 我应该如何在 C++ 中将两个矩阵相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37504028/