Matriisitoiminnot: Summa ja Transponointi
Pyyhkäise näyttääksesi valikon
Matriisioperaatiot ovat olennaisia monissa ohjelmointitehtävissä, erityisesti silloin kun käsiteltävä data sopii luontevasti ruudukkomuotoon, kuten kuvat, taulukkolaskentatiedostot tai pelilaudat. Kaksi keskeistä operaatiota, joita usein suoritetaan matriiseille (kaksiulotteisille taulukoille), ovat kaikkien alkioiden summan laskeminen ja transponointi. Alkioiden summan laskeminen on hyödyllistä data-analyysissä, kun taas matriisin transponointi—rivin ja sarakkeen vaihtaminen keskenään—on tärkeää matemaattisissa laskelmissa, grafiikassa ja algoritmeissa, joissa tarvitaan datan erilaista suuntausta.
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); } } }
Kaikkien alkioiden summan laskemiseksi kaksiulotteisessa taulukossa käytetään sisäkkäisiä silmukoita: ulompi silmukka käy läpi jokaisen rivin ja sisempi silmukka käy läpi jokaisen sarakkeen kyseisellä rivillä. Jokaisen alkion arvo lisätään kertymään. Yllä olevassa esimerkissä ohjelma laskee kaikkien alkioiden summan 2x3-matriisissa käyttämällä matrix[row, col]-viittausta ja keräämällä arvot sum-muuttujaan.
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(); } } } }
Tämä koodi suorittaa matriisin transponoinnin. Se alkaa 3×3-matriisilla ja luo uuden matriisin, jossa rivit ja sarakkeet on vaihdettu keskenään. Sisäkkäisiä silmukoita käyttäen jokainen alkio kohdassa (row, col) sijoitetaan kohtaan (col, row) transponoidussa matriisissa. Ohjelma tulostaa lopuksi tulosmatriisin, jolloin alkuperäiset rivit näkyvät sarakkeina.
Matriisin transponointi tarkoittaa rivien muuttamista sarakkeiksi ja sarakkeiden riveiksi.
1. Mikä on 2x3-matriisin transponoinnin tulos?
2. Miten lasketaan kaikkien alkioiden summa kaksiulotteisessa taulukossa?
3. Miksi transponointi on hyödyllistä matriisioperaatioissa?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme