Ich hab mal wieder ein kleines Java-Problem:
Mit der Methode MatrixAdd (Zeile 26) und MatrixSub (Zeile 38) addiere bzw. subtrahiere ich 2 Matrizen miteinander. Nun möchte ich in der Methode testen, ob die Matrizen die gleiche Größe haben, also 4x4 oder 6x6 usw. Falls nein, soll das mit einer RuntimeException gemeldet werden. Es sind auf jedenfall immer quadratische Matrizen, ich muss also nur die Anzahl der Spalten oder Reihen vergleichen.
Wie ich die Methoden MatrixAdd bzw. MatrixSub aufrufe sieht man im folgenden in der main Methode (Zeile 71):
Vergleichen wollte ich mit:
Ich weiß aber nicht, was ich für matrixLänge 1 und matrixLänge 2 einsetzen soll.... Einmal vielleicht b.getMatrixDim() (Methode dazu ab Zeile 61) und das zweite?!?!
Mit der Methode MatrixAdd (Zeile 26) und MatrixSub (Zeile 38) addiere bzw. subtrahiere ich 2 Matrizen miteinander. Nun möchte ich in der Methode testen, ob die Matrizen die gleiche Größe haben, also 4x4 oder 6x6 usw. Falls nein, soll das mit einer RuntimeException gemeldet werden. Es sind auf jedenfall immer quadratische Matrizen, ich muss also nur die Anzahl der Spalten oder Reihen vergleichen.
Wie ich die Methoden MatrixAdd bzw. MatrixSub aufrufe sieht man im folgenden in der main Methode (Zeile 71):
Java:
public class QMatrix {
// Instanzvariablen
private int n = 0;
private int[][] matrix;
// Konstruktor baut quadratische Matrix aus Eingabewert
public QMatrix (int n) {
this.n = n;
this.matrix = new int[n][n];
}
// setMatrix zum Einspeisen von neuen Werten
public void setMatrix(int x, int y, int r) {
matrix[x][y] = r;
}
// getMatrix zum Auslesen der Matrizen
public int getMatrix(int x, int y) {
int r = 0;
r = matrix[x][y];
return r;
}
// Instanzmethode zum addieren von Matrizen
public void MatrixAdd(QMatrix b) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j]+=b.getMatrix(i,j);
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
// Instanzmethode zum subtrahieren von Matrizen
public void MatrixSub(QMatrix b) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j]-=b.getMatrix(i,j);
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
// überschriebene toString Methode gibt die Matrix als String aus
public String toString() {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
return "";
}
// getMatrixDim gibt die Dimension der Matrix zurueck. Da quadratisch, reicht eine.
private int getMatrixDim() {
return n;
}
// main Methode
public static void main(String[] args) {
QMatrix q1 = new QMatrix(2);
QMatrix q2 = new QMatrix(3);
QMatrix q3 = new QMatrix(4);
q2.MatrixAdd(q1);
}
}
Vergleichen wollte ich mit:
Java:
try{
n = Integer.parseInt(args[0]);
if( matrixLänge 1 != matrixLänge)
throw new Exception("Fehler: Matrizen von ungleicher Groesse");
}
catch(Exception e){
System.out.println("Matrizen muessen gleiche Dimension haben");
return;
}
Ich weiß aber nicht, was ich für matrixLänge 1 und matrixLänge 2 einsetzen soll.... Einmal vielleicht b.getMatrixDim() (Methode dazu ab Zeile 61) und das zweite?!?!