Matrizenmultiplikation in Schleife packen

Dolphon

Erfahrenes Mitglied
Hi,

ich schaffe es irgendwie nicht folgende Matrizenmultiplikation in eine Schleife zu packen.

Code:
xnew=(matrixb[0][0]*matrixa[0][0])+(matrixb[1][0]*matrixa[1][0])+(matrixb[2][0]*matrixa[2][0])+(matrixb[3][0]*matrixa[3][0]); 
ynew=(matrixb[0][1]*matrixa[0][0])+(matrixb[1][1]*matrixa[1][0])+(matrixb[2][1]*matrixa[2][0])+(matrixb[3][1]*matrixa[3][0]);
znew=(matrixb[0][2]*matrixa[0][0])+(matrixb[1][2]*matrixa[1][0])+(matrixb[2][2]*matrixa[2][0])+(matrixb[3][2]*matrixa[3][0]);
wnew=(matrixb[0][3]*matrixa[0][0])+(matrixb[1][3]*matrixa[1][0])+(matrixb[2][3]*matrixa[2][0])+(matrixb[3][3]*matrixa[3][0]);

Das Ergebniss muss nachher in matrixc[4][1] stehen.
Wie viele for schleifen brauch ich?

Gruß

Dolphon
 
Hallo.

Ich würde sagen 2 müssten reichen.

Ich weiß nur nich welches Ergebnis nach [4][1] soll. Es gibt so wie ich das sehe 4 Ergebnisse.

Bisschen mehr Informationen wären gut.

Und so neben bei behaupte ich jetzt einfach mal das es durch die Schleifen auch nicht kürzer wird und das man dass mit den 2 Schleifen ganz leicht heraus bekommen hätte wenn man sich ein wenig angestrengt hätte.

Gruß
 
C++:
type result[4] = { 0, 0, 0, 0 };
for (std::size_t x(0); x < 4; ++x)
    for (std::size_t y(0); y < 4; ++y)
        result[x] += lhs[y][x] * rhs[y][x];
so sollte schon in etwa reichen ...
 
Zurück