Matrix mit Array addieren in Java? Methodenkopf Matrix Probleme?

2 Antworten

Wenn du ein Objekt des Typs Matrix hast, und dies mit einem Array verrechnen möchtest, kannst du wie geplant ruhig verschachtelte Schleifen nehmen. Jedoch brauchst du eine Möglichkeit, auf die einzelnen Zahlen der Matrix, so wie bei einem Array via Indexer, zuzugreifen.

Also wäre so etwas in der Art ganz gut:

result[i][j] = arr[i][j] + matrix.get(i, j);

Da ich nicht weiß, woher du die Klasse Matrix hast, müsstest du selbst einmal schauen, wie du auf die einzelnen Werte zugreifen kannst.

Das, was dir dort in Eclipse bemängelt wird, ist wohl eher, dass du sicherlich irgendwo ein Matrizenobjekt angibst (ich denke mal, es ist values), wo ein Array erwartet wird. Es ist ein Typ- oder Umgangsfehler.

Was mir nun bei deiner Methode noch auffällt:

  • Du verwendest den Parameter m scheinbar gar nicht.
  • Ich würde values nicht unbedingt überschreiben sondern eine neue Matrix oder ein neues zweidimensionales Array anlegen, welches am Ende von der Methode zurückgegeben wird.
  • values und this.values sind offensichtlich die selben Attribute. Du solltest stringent bleiben und sie gleich aufrufen. Entweder immer mit Objektzeiger davor oder ohne. Wenn sie hingegen auf unterschiedliche Objekte zeigen, wären deine Schleifen vom Zählverhalten brandgefährlich, da sie einen Überlauf provozieren, sollte this.values kleiner sein als values.
  • Eine Vereinfachung der Addition wäre angemessen, sollten values und this.values die selben Attribute wiederspiegeln.

Entweder so:

values[i][j] = 2 * this.values[i][j]; // a

oder so:

values[i][j] += values[i][j];  // b

Wenn du meinen 2. Ratschlag aus der Auflistung befolgst, wäre hier natürlich Variante a) zu nutzen.

Eine Matrix ist quasi ein zweidimensionales array.

eindimensionales/normales array -> a[]={1,2,3,4}
zweidimensionales array/ matrix -> a[][]= {1,2,3,4}
                                                                  {5,6,7,8}
                                                                   ...

ìch denke du musst die richtigen werte aus der matrix nehmen und es als array speichern, damit du sie addieren kannst.

MannmitMuetze 
Fragesteller
 08.11.2017, 15:33

okay und wie mache ich das?

Ich will also ein neues Array schaffen und nehme dazu die Länge der Matrix m der mir im Methodenkopf übergeben wird.

Der Code sähe dann so aus:

int[][] matrix = new int[m.length][m[0].length];

Aber da meckert Eclipse auch wieder rum...

0
NameVergeben26  08.11.2017, 23:31
@regex9

hol irgendwie die werte raus xD von mir aus speichere sie einzelnd in hilfsvariablen indem du den array index und dann damit rechnest. Wäre eine umständliche Methode. Will da jetzt keine Hausaufgaben von Leuten machen :D

0