24: Vektoren 2 – Matrizen

Schreiben Sie jeweils (static) Methoden zum Bearbeiten von Matrizen und Vektoren. Gehen Sie davon aus, dass die Matrizen nicht notwendigerweise quadratisch sind:

  • Addition zweier Matrizen
  • Multiplikation mit einem Skalar
  • Ermittlung des betragsmäßig größten Elements einer Matrix
  • Transponieren einer Matrix
  • Ermittlung der Teilmatrix von A. Die Teilmatrix besteht aus den Zeilen z1-z2 und den Spalten s1-s2 von A

Lösung


public class Aufgabe24 
{
	public static double[][] Summe (double[][] dMatrixA, double[][] dMatrixB)
	{
		double[][] dErgebnis = new double[dMatrixA.length][dMatrixA[0].length];
		
		for (int i = 0; i < dMatrixA.length; ++ i)
			for (int j = 0; j < dMatrixA[0].length; ++ j)
				dErgebnis[i][j] = dMatrixA[i][j] + dMatrixB[i][j];
		
		return dErgebnis;
	} // end Summe
	
	public static double[][] ProduktSkalar (double[][] dMatrix, double dSkalar)
	{
		for (int i = 0; i < dMatrix.length; ++ i)
			for (int j = 0; j < dMatrix[0].length; ++ j)
				dMatrix[i][j] *= dSkalar;
		
		return dMatrix;
	} // end ProduktSkalar
	
	public static double MaximalerWert (double[][] dMatrix)
	{
		double dMax = 0;
		for (int i = 0; i < dMatrix.length; ++ i)
			for (int j = 0; j < dMatrix[0].length; ++ j)
				if (dMatrix[i][j] > dMax)
					dMax = dMatrix[i][j];
		return dMax;
	} // end MaximalerWert
	
	public static double[][] Transponierte (double[][] dMatrix)
	{
		double[][] dErgebnis = new double[dMatrix.length][dMatrix[0].length];
		for (int i = 0; i < dMatrix.length; ++ i)
			for (int j = 0; j < dMatrix[0].length; ++ j)
				dErgebnis[i][j] = dMatrix[j][i];
		return dErgebnis;
	} // end Transponierte
	
	public static double[][] TeilMatrix (double[][] dMatrix, int[] iBereich)
	{
		double[][] dErgebnis 
			= new double[iBereich[2] - iBereich[0] + 1]
			            [iBereich[3] - iBereich[1] + 1];
		for (int i = iBereich[0]; i <= iBereich[2]; ++ i)
			for (int j = iBereich[1]; j <= iBereich[3]; ++ j)
				dErgebnis[i - iBereich[0]][j - iBereich[1]] = dMatrix[i][j];
		return dErgebnis;
	} // end TeilMatrix
	
	public static void main (String[] args)
	{
		double[][] dTest1 = {{1, 2, 3}, {4, 5, 6}};
		double[][] dTest2 = {{2, 3, 4}, {5, 7, 6}};
		double[][] dTest3 = {{1, 2, 3}, {2, 3, 4}, {4, 5, 6}};
		int[] iBereich = {1, 1, 2, 2};
		
		System.out.println(Summe(dTest1, dTest2)[1][0]);
		System.out.println(ProduktSkalar(dTest1, 5)[1][0]);
		System.out.println(MaximalerWert(dTest2));
		System.out.println(Transponierte(dTest3)[2][0]);
		System.out.println(TeilMatrix(dTest3, iBereich)[1][0]);
	} // end main
} // end Aufgabe 24

Leave a Reply

Close Menu