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


