Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Moltiplicazione di Matrici | Lavorare con Array 2D
Array in C#

Moltiplicazione di Matrici

Scorri per mostrare il menu

La moltiplicazione di matrici è un'operazione fondamentale in matematica e programmazione, soprattutto quando si lavora con array 2D, detti anche matrici. Per moltiplicare due matrici, è necessario seguire regole specifiche: il numero di colonne della prima matrice deve essere uguale al numero di righe della seconda matrice. Il risultato della moltiplicazione di una matrice m x n per una matrice n x p è una nuova matrice m x p. Ogni elemento della matrice risultante viene calcolato effettuando il prodotto scalare tra una riga della prima matrice e una colonna della seconda matrice.

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

Per comprendere come funziona la moltiplicazione di matrici, seguire questi passaggi basati sul codice sopra:

  1. Verificare le dimensioni: la prima matrice (matrixA) ha 3 colonne e la seconda matrice (matrixB) ha 3 righe, quindi la moltiplicazione è possibile;
  2. Creare una matrice risultato con tante righe quante matrixA e tante colonne quante matrixB;
  3. Utilizzare tre cicli annidati:
    • Il ciclo esterno itera su ogni riga della prima matrice;
    • Il ciclo intermedio itera su ogni colonna della seconda matrice;
    • Il ciclo interno calcola la somma dei prodotti per la riga e la colonna correnti, moltiplicando gli elementi corrispondenti e sommando i risultati;
  4. Assegnare il valore calcolato alla cella appropriata della matrice risultato;
  5. Stampare il risultato in un formato leggibile.
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. } } }

Questo esempio verifica se due matrici possono essere moltiplicate. Definisce matrixA (2×2) e matrixB (1×3), quindi confronta il numero di colonne della prima matrice con il numero di righe della seconda. Poiché questi valori non coincidono, il programma stampa un messaggio di incompatibilità e si interrompe. Dimostrazione della validazione delle dimensioni delle matrici prima di eseguire la moltiplicazione.

Note
Definizione

Moltiplicazione di matrici è il processo di combinazione di due matrici per produrre una nuova matrice, moltiplicando le righe della prima matrice per le colonne della seconda matrice e sommando i prodotti.

1. Quali sono i requisiti per moltiplicare due matrici?

2. Quanti cicli annidati sono generalmente necessari per la moltiplicazione di matrici?

3. Cosa succede se le matrici hanno dimensioni incompatibili?

question mark

Quali sono i requisiti per moltiplicare due matrici?

Seleziona la risposta corretta

question mark

Quanti cicli annidati sono generalmente necessari per la moltiplicazione di matrici?

Seleziona la risposta corretta

question mark

Cosa succede se le matrici hanno dimensioni incompatibili?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 4. Capitolo 5
some-alt