Matrixbewerkingen: Som en Transponeren
Veeg om het menu te tonen
Matrixbewerkingen zijn essentieel bij veel programmeertaken, vooral wanneer wordt gewerkt met gegevens die zich natuurlijk in een rasterstructuur laten plaatsen, zoals afbeeldingen, spreadsheets of speelborden. Twee fundamentele bewerkingen die vaak op matrices (2D-arrays) worden uitgevoerd, zijn het berekenen van de som van alle elementen en het transponeren ervan. Het optellen van alle elementen is nuttig voor data-analyse, terwijl het transponeren van een matrix—het verwisselen van rijen en kolommen—van groot belang is bij wiskundige berekeningen, grafische toepassingen en algoritmen die een andere oriëntatie van de gegevens vereisen.
Program.cs
12345678910111213141516171819202122232425262728// File: Program.cs using System; namespace ConsoleApp { public class Program { public static void Main(string[] args) { int[,] matrix = { {1, 2, 3}, {4, 5, 6} }; int sum = 0; for (int row = 0; row < matrix.GetLength(0); row++) { for (int col = 0; col < matrix.GetLength(1); col++) { sum += matrix[row, col]; } } Console.WriteLine("Sum of all elements: " + sum); } } }
Om alle elementen in een 2D-array op te tellen, gebruik je geneste lussen: de buitenste lus doorloopt elke rij en de binnenste lus doorloopt elke kolom binnen die rij. Voor elk element tel je de waarde op bij een lopend totaal. In het bovenstaande voorbeeld berekent het programma de som van alle elementen in een 2x3 matrix door elke waarde te benaderen met matrix[row, col] en deze op te tellen bij de variabele sum.
Program.cs
123456789101112131415161718192021222324252627282930313233343536373839// File: Program.cs using System; namespace ConsoleApp { public class Program { public static void Main(string[] args) { int[,] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int size = matrix.GetLength(0); int[,] transposed = new int[size, size]; for (int row = 0; row < size; row++) { for (int col = 0; col < size; col++) { transposed[col, row] = matrix[row, col]; } } Console.WriteLine("Transposed matrix:"); for (int row = 0; row < size; row++) { for (int col = 0; col < size; col++) { Console.Write(transposed[row, col] + " "); } Console.WriteLine(); } } } }
Deze code voert een matrixtransponering uit. Er wordt gestart met een 3×3 matrix en een nieuwe matrix wordt aangemaakt waarbij rijen en kolommen worden omgewisseld. Met geneste lussen wordt elk element op positie (row, col) toegewezen aan (col, row) in de getransponeerde matrix. Het programma print vervolgens de resulterende matrix, waarbij te zien is hoe de oorspronkelijke rijen kolommen worden.
Het transponeren van een matrix betekent dat de rijen worden omgezet in kolommen en omgekeerd.
1. Wat is het resultaat van het transponeren van een 2x3-matrix?
2. Hoe tel je alle elementen in een 2D-array op?
3. Waarom is transponeren nuttig bij matrixbewerkingen?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.