Matrixmultiplikation mit zwei Matrizen
Um zwei Matrizen zu multiplizieren, müssen Sie bestimmte Regeln befolgen. Erstens sollte die Anzahl der Spalten der ersten Matrix der Anzahl der Zeilen der zweiten Matrix entsprechen. Zweitens wird die resultierende Matrix die gleiche Anzahl von Zeilen wie die erste Matrix und die gleiche Anzahl von Spalten wie die zweite Matrix haben.
Nehmen wir an, dass wir zwei Matrizen haben:
A = {{1, 3, 5},
{4, 2, 6}};
B = {{7, 4},
{3, 1},
{6, 9}};
Um diese zwei Matrizen zu multiplizieren, werden wir ein Skalarprodukt auf ihren Zeilen und Spalten ausführen. Die Elemente der Matrizen werden mit der folgenden Formel multipliziert:
result[row][col] = matrix1[row][0] * matrix2[0][col]
+ matrix1[row][1] * matrix2[1][col]
+ matrix1[row][2] * matrix2[2][col]
+...;
Folgendes ist ein C-Programm zur Matrixmultiplikation:
#include <stdio.h>
int main()
{
int m, n, p, q, c, d, k, sum = 0;
// definieren Sie zwei Matrizen
int first[10][10], second[10][10], result[10][10];
// geben Sie die Anzahl der Zeilen und Spalten der ersten Matrix ein
printf("Geben Sie die Anzahl der Zeilen und Spalten der ersten Matrix ein:\n");
scanf("%d %d", &m, &n);
// geben Sie die Elemente der ersten Matrix ein
printf("Geben Sie die %d Elemente der ersten Matrix ein:\n", m * n);
for (c = 0; c < m; c++) {
for (d = 0; d < n; d++) {
scanf("%d", &first[c][d]);
}
}
// geben Sie die Anzahl der Zeilen und Spalten der zweiten Matrix ein
printf("Geben Sie die Anzahl der Zeilen und Spalten der zweiten Matrix ein:\n");
scanf("%d %d", &p, &q);
// geben Sie die Elemente der zweiten Matrix ein
printf("Geben Sie die %d Elemente der zweiten Matrix ein:\n", p * q);
for (c = 0; c < p; c++) {
for (d = 0; d < q; d++) {
scanf("%d", &second[c][d]);
}
}
// überprüfen, ob die Matrizen multipliziert werden können
if (n!= p) {
printf("Matrizen können nicht miteinander multipliziert werden.\n");
} else {
// multiplizieren der Matrizen
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++) {
for (k = 0; k < p; k++) {
sum = sum + first[c][k] * second[k][d];
}
result[c][d] = sum;
sum = 0;
}
}
// geben Sie die resultierende Matrix aus
printf("Die resultierende Matrix ist:\n");
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++) {
printf("%d\t", result[c][d]);
}
printf("\n");
}
}
return 0;
}
Das Programm wird den Benutzer auffordern, die Elemente von zwei Matrizen einzugeben, überprüfen, ob sie multipliziert werden können, sie multiplizieren, wenn möglich, und die resultierende Matrix ausgeben.