Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Matrixmultiplikation | Arbejde med 2D-arrays
C# Arrays

Matrixmultiplikation

Stryg for at vise menuen

Matrixmultiplikation er en grundlæggende operation inden for matematik og programmering, især når der arbejdes med 2D-arrays, også kaldet matricer. For at multiplicere to matricer skal du følge specifikke regler: Antallet af kolonner i den første matrix skal være lig med antallet af rækker i den anden matrix. Resultatet af at multiplicere en m x n matrix med en n x p matrix er en ny m x p matrix. Hvert element i den resulterende matrix beregnes ved at tage prikproduktet af en række fra den første matrix og en kolonne fra den anden matrix.

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(); } } } }

For at forstå, hvordan matrixmultiplikation fungerer, følg disse trin baseret på koden ovenfor:

  1. Kontroller dimensionerne: den første matrix (matrixA) har 3 kolonner, og den anden matrix (matrixB) har 3 rækker, hvilket betyder, at multiplikation er mulig;
  2. Opret en resultatmatrix med lige så mange rækker som matrixA og lige så mange kolonner som matrixB;
  3. Brug tre indlejrede løkker:
    • Den yderste løkke itererer over hver række i den første matrix;
    • Den midterste løkke itererer over hver kolonne i den anden matrix;
    • Den inderste løkke beregner summen af produkter for den aktuelle række og kolonne ved at multiplicere de tilsvarende elementer og lægge dem sammen;
  4. Tildel den beregnede værdi til den relevante celle i resultatmatricen;
  5. Udskriv resultatet i et læsbart 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. } } }

Dette eksempel kontrollerer, om to matricer kan multipliceres. Den definerer matrixA (2×2) og matrixB (1×3), og sammenligner derefter antallet af kolonner i den første matrix med antallet af rækker i den anden. Da disse værdier ikke stemmer overens, udskriver programmet en inkompatibilitetsmeddelelse og stopper. Det demonstrerer, hvordan man validerer matrixdimensioner, før multiplikation udføres.

Note
Definition

Matrixmultiplikation er processen, hvor to matricer kombineres for at danne en ny matrix ved at multiplicere rækkerne i den første matrix med kolonnerne i den anden matrix og summere produkterne.

1. Hvad er kravene for at multiplicere to matricer?

2. Hvor mange indlejrede løkker er typisk nødvendige for matrixmultiplikation?

3. Hvad sker der, hvis matricerne har inkompatible størrelser?

question mark

Hvad er kravene for at multiplicere to matricer?

Vælg det korrekte svar

question mark

Hvor mange indlejrede løkker er typisk nødvendige for matrixmultiplikation?

Vælg det korrekte svar

question mark

Hvad sker der, hvis matricerne har inkompatible størrelser?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 4. Kapitel 5
some-alt