Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Matrixmultiplikation | Working with 2D Arrays
C#-Arrays

Matrixmultiplikation

Swipe um das Menü anzuzeigen

Matrixmultiplikation ist eine grundlegende Operation in Mathematik und Programmierung, insbesondere beim Arbeiten mit 2D-Arrays, die auch Matrizen genannt werden. Um zwei Matrizen zu multiplizieren, müssen bestimmte Regeln beachtet werden: Die Anzahl der Spalten der ersten Matrix muss gleich der Anzahl der Zeilen der zweiten Matrix sein. Das Ergebnis der Multiplikation einer m x n-Matrix mit einer n x p-Matrix ist eine neue m x p-Matrix. Jedes Element der resultierenden Matrix wird berechnet, indem das Skalarprodukt einer Zeile der ersten Matrix mit einer Spalte der zweiten Matrix gebildet wird.

MatrixMultiplication.cs

MatrixMultiplication.cs

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
using System; namespace ConsoleApp { public class MatrixMultiplication { public static void Main(string[] args) { int[,] matrixA = { {1, 2, 3}, {4, 5, 6} }; int[,] matrixB = { {7, 8}, {9, 10}, {11, 12} }; int rowsA = matrixA.GetLength(0); int colsA = matrixA.GetLength(1); int rowsB = matrixB.GetLength(0); int colsB = matrixB.GetLength(1); if (colsA != rowsB) { Console.WriteLine("Cannot multiply: incompatible matrix sizes."); return; } int[,] result = new int[rowsA, colsB]; for (int i = 0; i < rowsA; i++) { for (int j = 0; j < colsB; j++) { int sum = 0; for (int k = 0; k < colsA; k++) { sum += matrixA[i, k] * matrixB[k, j]; } result[i, j] = sum; } } Console.WriteLine("Result of matrix multiplication:"); for (int i = 0; i < rowsA; i++) { for (int j = 0; j < colsB; j++) { Console.Write(result[i, j] + " "); } Console.WriteLine(); } } } }

Um zu verstehen, wie die Matrixmultiplikation funktioniert, folgen Sie diesen Schritten basierend auf dem obigen Code:

  1. Überprüfen der Dimensionen: Die erste Matrix (matrixA) hat 3 Spalten und die zweite Matrix (matrixB) hat 3 Zeilen, daher ist die Multiplikation möglich;
  2. Erstellen einer Ergebnis-Matrix mit so vielen Zeilen wie matrixA und so vielen Spalten wie matrixB;
  3. Verwenden von drei verschachtelten Schleifen:
    • Die äußere Schleife iteriert über jede Zeile der ersten Matrix;
    • Die mittlere Schleife iteriert über jede Spalte der zweiten Matrix;
    • Die innere Schleife berechnet die Summe der Produkte für die aktuelle Zeile und Spalte, indem entsprechende Elemente multipliziert und aufsummiert werden;
  4. Zuweisen des berechneten Werts zur entsprechenden Zelle in der Ergebnis-Matrix;
  5. Ausgabe des Ergebnisses in einem lesbaren Format.
IncompatibleMatrices.cs

IncompatibleMatrices.cs

12345678910111213141516171819202122232425262728293031
using System; namespace ConsoleApp { public class IncompatibleMatrices { public static void Main(string[] args) { int[,] matrixA = { {1, 2}, {3, 4} }; int[,] matrixB = { {5, 6, 7} }; int colsA = matrixA.GetLength(1); int rowsB = matrixB.GetLength(0); if (colsA != rowsB) { Console.WriteLine("Cannot multiply: the number of columns in the first matrix does not match the number of rows in the second matrix."); return; } // This code will not be reached because the matrices are incompatible. } } }

Dieses Beispiel prüft, ob zwei Matrizen miteinander multipliziert werden können. Es definiert matrixA (2×2) und matrixB (1×3) und vergleicht dann die Anzahl der Spalten der ersten Matrix mit der Anzahl der Zeilen der zweiten. Da diese Werte nicht übereinstimmen, gibt das Programm eine Inkompatibilitätsmeldung aus und beendet sich. Es zeigt, wie die Dimensionen von Matrizen vor der Multiplikation überprüft werden können.

Note
Definition

Matrixmultiplikation ist der Vorgang, bei dem zwei Matrizen kombiniert werden, um eine neue Matrix zu erzeugen, indem die Zeilen der ersten Matrix mit den Spalten der zweiten Matrix multipliziert und die Produkte aufsummiert werden.

1. Welche Voraussetzungen müssen für die Multiplikation zweier Matrizen erfüllt sein?

2. Wie viele verschachtelte Schleifen werden typischerweise für die Matrixmultiplikation benötigt?

3. Was passiert, wenn die Matrizen inkompatible Größen haben?

question mark

Welche Voraussetzungen müssen für die Multiplikation zweier Matrizen erfüllt sein?

Wählen Sie die richtige Antwort aus

question mark

Wie viele verschachtelte Schleifen werden typischerweise für die Matrixmultiplikation benötigt?

Wählen Sie die richtige Antwort aus

question mark

Was passiert, wenn die Matrizen inkompatible Größen haben?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 4. Kapitel 5
some-alt