Hinweis: Ich verwende die Standardbibliothek für C++ und speichere Matrizen als mehrdimensionale Vektoren (siehe Beispiel unten).Wie soll ich zwei Matrizen in C++ multiplizieren?
Ich habe Probleme, die richtige Funktion zu finden, um zwei Matrizen in C++ zu multiplizieren. Um zu klären, was ich versuche zu tun:
A = | a1 a2 | B = | b1 |
| a3 a4 | | b2 |
Result = | (a1 * b1 + a2 * b2) |
| (a3 * b1 + a4 * b2) |
Offensichtlich konnte ich tun dies einen einfachen Algorithmus, aber ich versuche zu finden, wenn es eine Funktion ist, dies zu tun.
Mein spezielles Beispiel in 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);
Wo "Ergebnis" wäre:
| 1.8631586 |
| 0.4413864 |
Wie soll ich gehen über die oben tun?
Um genauer zu sein, versuchen Sie, einen Vektor mit einer Matrix zu multiplizieren, die als Vektor von Vektoren dargestellt wird. 'std :: vector' ist nicht speziell für diese Art von Dingen gedacht. Versuchen Sie etwas, das z.B. die Eigen-Bibliothek. –
Sie multiplizieren nicht zwei Vektoren, Sie multiplizieren zwei Matrizen. Die Standardvektorbibliothek für C++ hat nichts mit mathematischen Matrizen zu tun. (Ich weiß, dass ein Vektor in der Mathematik als eindimensionale Matrix betrachtet wird, aber dieses Konzept trifft hier nicht zu.) –