|
|
Quellcode |
1 |
int[][] matrixA = {{5,4,1},{-3,1,3},{5,2,-3},{1,4,9}};
|
|
|
Quellcode |
1 |
int[][] matrixE = {{5,6,9},{13,9,7},{5,8,13},{9,6,1}};
|
|
|
Quellcode |
1 |
ergebnis[][] = matrixA[i][j] + matrixE[i][j] |
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
class Matrix1
{
public static void main(String[] args)
{
int[][] matrixA = {{5,4,1},
{-3,1,3},
{5,2,-3},
{1,4,9}};
int[][] matrixB = {{3,1,5,7},
{-2,6,-3,1},
{-3,2,1,9}};
int[][] matrixE = {{5,6,9},
{13,9,7},
{5,8,13},
{9,6,1}};
int[][] matrixF = {{4,5,8},
{12,8,6},
{4,7,12},
{8,5,0}};
//=============ADDITION, SUBTRAKTION & MULTIPLIKATION==============================================
//Initialisierung Addition, Subtraktion
for(int i = 0; i<matrixA.length;i++)
for(int j = 0; j<matrixA[0].length; j++);
for(int i = 0; i<matrixB.length;i++)
for(int j = 0; j<matrixB[0].length; j++);
for(int i = 0; i<matrixE.length;i++)
for(int j = 0; j<matrixE[0].length; j++);
for(int i = 0; i<matrixF.length;i++)
for(int j = 0; j<matrixF[0].length; j++);
//Addition, Subtraktion
int[][] ergebnis_plus = new int[4][3];
int[][] ergebnis_minus = new int[4][3];
int[][] ergebnis_multi = new int[3][3];
for(int i = 0; i<4; i++)
for(int j=0;j<3; j++)
ergebnis_plus[i][j] = matrixA[i][j] + matrixE[i][j];
for(int i = 0; i<4; i++)
for(int j=0;j<3; j++)
ergebnis_minus[i][j] = matrixE[i][j] - matrixF[i][j];
for(int i = 0; i<3; i++)
for(int j=0;j<matrixB.length; j++)
for(int k = 0; k<matrixA[0].length;k++)
ergebnis_multi[i][k] = matrixA[i][j] * matrixB[i][k];
//Ausgabe ergebnis_plusMinusMulti:
for(int i=0; i<4; i++)
{
for(int j=0; j<3; j++)
System.out.print(ergebnis_plus[i][j] + " ");
System.out.println("");
}
System.out.println();
for(int i=0; i<4; i++)
{
for(int j=0; j<3; j++)
System.out.print(ergebnis_minus[i][j] + " ");
System.out.println("");
}
System.out.println();
for(int i=0; i<4; i++)
{
for(int j=0; j<3; j++)
System.out.print(ergebnis_multi[i][j] + " ");
System.out.println("");
}//=================================================================================
}//Ende Main()
} //Ende Klasse
|


Aber ich würde nen objektorientierteren Ansatz wählen.
die matrizen sind multiplizierbar
ich dachte irgendwie an quadtratische matrizen.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Quickbeam2k1« (25.12.2009, 10:54)
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
public class Matrix {
private double[][] data;
private int rows;
private int lines;
public Matrix(double[][] in){
data = in;
lines = data.length;
rows = data[0].length;
};
double get(int a, int b){
return this.data[a][b];
}
private void set(int a, int b, double in){
this.data[a][b]= in;
}
public int lines(){
return this.lines;
}
public int rows(){
return this.rows;
}
public Matrix matrixAdd(Matrix that){
if(!(this.lines() == that.lines() && this.rows() == that.rows())){
throw new IllegalArgumentException("Folgende Bedingung wurde verletzt: this.lines == that.lines und this.rows == that.rows");
}
Matrix result = new Matrix(new double[this.lines()][this.rows()]);
for(int i = 0; i < this.lines(); i++){
for(int j = 0; j < this.rows(); j++){
result.set(i, j, (this.get(i, j) + that.get(i, j))) ;
}
}
return result;
};
public Matrix matrixMul(Matrix that){
if(!(this.lines() == that.rows() && this.rows() == that.lines())){
throw new IllegalArgumentException("Folgende Bedingung wurde verletzt: this.lines == that.rows und this.rows == that.lines");
}
Matrix result = new Matrix(new double[this.lines()][that.rows()]);
// hier berechnung der einzelnen matrixelemente
return result;
};
}
|
bei der multiplikation fehlt nach die berechnung der daten. wie diese in die matrix "result" kommen, siehst du bei der addition.Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »turbo« (25.12.2009, 17:07)
Das ist wohl die Lösung die man von einem 6. Semestler erwarten würde!
Aber wenn ich meine Lösung so anpassen würde, würde es mir keiner glauben, dass der Code von mir ist (1. Semester) 
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 |
static double[][] add(double[][] a, double[][]b){
double[][] result = new double[a.length][a[0].length];
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[0].length; j++){
result[i][j] = (a[i][j] + b[i][j]);
}
}
return result;
};
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »turbo« (25.12.2009, 17:06)



