Matrix

Nirvana

Aktives Mitglied
Schreibe eine Klasse Vektor2DMatrix. (eine klasse Vektor2D habe ich schon geschrieben) Konstruktoren habe ich - nun stecke ich bei einer methode:

Methode: public static Vektor2DMatrix random (int n)
//Zufallsmatrix, n x n Matrix mit zufälligen Einträgen



Es soll also eine n x n Matrix mit zufälligen Vektor2D-Eintragungen befüllt werden.


Einer meiner Konstruktoren, den ich hier brauche:
Java:
public Vektor2DMatrix(int n){
    matrix = new Vekktor2D[n][n];
}

Java:
public static Vektor2DMatrix random(int n){
Vektor2DMatrix newMatrix = new Vektor2DMatrix(n);
    for(int i=0;i<n;i++){
        for (int j=0;j<n;j++){
             ??;
        }
Nun fehlt mir bei ?? der Befehl.
Ich möchte die Matrix mit zufälligen Vektor2D-Eintragungen befüllen.
Ich bin mir auch nicht sicher mit was ich dann Math.random () multiplizieren soll.
 

greatergood

Mitglied
Was deine ?? angeht: du musst hier "verschachtelt" denken. (falls ich dein Problem richtig verstanden habe).

Es soll also eine n x n Matrix mit zufälligen Vektor2D-Eintragungen befüllt werden.

Also:
Du willst eine Matrix, in der nicht einfach Zahlen stehen, sondern Objekte von Vektor2D.
Und ein Vektor 2D hat soweit ich weiß nur 2 Werte zu speichern (x, y). Also ein Tupel.

Dann erstelle doch im inneren der beiden For-Schleifen ein Vektor2D-Objekt und fülle es mit zufälligen Werten, mit Hilfe eines Random-Objektes, so:

Java:
Vektor2D einVektor = new Vektor2D();
Random randObject = new Random(100); // Nur Werte von 0 bis 99 generieren, oder wie du willst.
einVektor.setX(randObject.nextInt()); //.setX(), o.ä. muss als methode natürlich in
einVektor.setY(randObject.nextInt()); // Vektor2D implementiert sein, und einen Wert int füllen.

Jetzt musst du nurnoch an richtiger Stelle in deiner "newMatrix" das Objekt "einVektor" einfügen, das sollte jetzt ja im inneren deiner beiden for-Schleifen machbar sein, oder?

Cheers
 
Zuletzt bearbeitet:

Nirvana

Aktives Mitglied
okay, habe ich nun so ähnlich gemacht.
Ich habe in vektor2D eine Methode: public static Vektor2D random()
programmiert, die einen zufällig Vektor wiedergibt.


Java:
public static Vektor2DMatrix random(int n){
Vektor2DMatrix newMatrix = new Vektor2DMatrix(n);
    for(int i=0;i<n;i++){
        for (int j=0;j<n;j++){
             newMatrix [i][j]= Vektor2D.random();
  return  newMatrix;
        }

Funktioniert aber nicht, da er in Zeile 5 ein array erwartet. Ich verstehe den fehler nicht!
 
Zuletzt bearbeitet:

greatergood

Mitglied
Ahh, verstehe.

Also folgendes, dein Konstruktor:

Java:
public Vektor2DMatrix(int n){
    matrix = new Vektor2D[n][n];
}

weist einer Klassen-Variable "matrix", das ein zweidimensionales Array von Vektor2D ist zu. D.h. du kannst zwar ein "newMatrix" Object erstellen, aber dann musst du nicht das Objekt selber mit einem Vektor2D überschreiben,
sondern: diese Klassenvariable "matrix", die zu deinem Objekt "newMatrix" gehört/untergeordnet ist ;).

Versuchs mal mit einem Zeile 5 Ersatz folgendermaßen:

Java:
newMatrix.matrix[i][j] = Vektor2D.random(); //deine Klassenvariable "matrix" muss hierfuer public sein
 

Nirvana

Aktives Mitglied
danke verstanden.

Nun soll ich noch eine Methode: public String toSTring() für die Darstellung der Matrix mit den Vektor2D einträgen schreiben.
Für die Vektor2D - Klasse habe ich solch eine Methode schon in der entsprechenden Vektor2D Klasse, die ich hier auch verwenden soll.
Diese sah so aus
Java:
public String toString() {
        return "(" + x + "," + y + ")";
    }

Mit zwei for-schleifen kann ich jedes Vektor2D-element der Matrix abklappern.
Abstand zwischen den SPalten mache ich mit Tabulator und in die neue Zeile kann ich mit \n gehen aber wie mache ich das mit dem STring?
 

njans

Top Contributor
Du kannst Strings in Java leicht erzeugen:
Java:
String s = array[1] + " " + array[2] + " " + array[3];

Damit kannst du recht leicht eine Ausgabe machen ;)
 

Nirvana

Aktives Mitglied
Leider gibt Java mir so gar nicht eine schöne matrix aus.

Java:
public String toSTring(){
 String s = "";
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                s = s + "\t" + matrix[i][j];
            }
            s = s + "\n";
        }
        return s;
    }

Tipps?
 

AquaBall

Top Contributor
Leider gibt Java mir so gar nicht eine schöne matrix aus.

Java:
public String toSTring(){
 String s = "";
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                s = s + "\t" + matrix[i][j];
            }
            s = s + "\n";
        }
        return s;
    }

Tipps?

Scheiterts am Tippfehler toSTring(),
oder gar daran, dass du keinen print-Befehl verwendest? :oops:
 

Nirvana

Aktives Mitglied
Ich hätte eine Frage:
Warum gibt Java automatisch die Vektoren und Matrixen in der ensprechenden Darstellung in der Konsole aus ohne dass man die Methode toString() explizit dazuschreibt?
 
G

Gast2

Gast
Die toString() Methode wird automatisch aufgerufen wenn du ein Objekt per System.out.println() ausgibst.
 
H

hüteüberhüte

Gast
Also deine random()-Methode kann eine statische Methode in Vektor2DMatrix sein (gut), oder eine Objekt-/Instanzmethode in Vektor2DMatrix (eher schlecht), oder anstatt einer Methode ein spezieller Konstruktor in Vektor2DMatrix (gut), oder du kannst, anstatt eine Methode zu verwenden, Vektor2DMatrix innerhalb der Schleife erstellen (eher schlecht). Welche Möglichkeit wird denn jetzt von dir favorisiert?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I matrix aufgabe Java Basics - Anfänger-Themen 22
L Zweidimensionaler Array; n x m - Matrix überprüfuen Java Basics - Anfänger-Themen 35
C Matrix mit Array ausgeben Java Basics - Anfänger-Themen 6
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
M Matrix Java Basics - Anfänger-Themen 3
F Matrix Multiplikation Java Basics - Anfänger-Themen 3
B Dünn besetzte Matrix Java Basics - Anfänger-Themen 7
Al3xand3r01 Matrix, Nachbarelemente Java Basics - Anfänger-Themen 16
E Rückwärtsmultiplikation einer invertierten matrix Java Basics - Anfänger-Themen 2
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
M Matrix auf 4 Elemente untersuchen mit offenen Enden Java Basics - Anfänger-Themen 8
B Diskrete Faltung (Matrix) Randfälle Java Basics - Anfänger-Themen 8
M Matrix Elemente vergleichen Java Basics - Anfänger-Themen 11
N Quadratische Matrix inkl Summe Java Basics - Anfänger-Themen 8
J Methoden Moving a n integer matrix Java Basics - Anfänger-Themen 3
D Methoden Matrix Multiplikation Java Basics - Anfänger-Themen 27
O Matrix, Vektor Java Basics - Anfänger-Themen 9
H 2D Array, Symmetrische Matrix Java Basics - Anfänger-Themen 12
S Matrix spaltenweise befüllen Java Basics - Anfänger-Themen 1
T Zufällige Matrix in neue Matrix schreiben Java Basics - Anfänger-Themen 6
C Matrix-Werte werden nicht wie erwartet ausgegeben Java Basics - Anfänger-Themen 7
C Matrix erstellen Spaltensumme, Zeilensumme, Diagonale Java Basics - Anfänger-Themen 1
S Methoden Transponierte Matrix Java Basics - Anfänger-Themen 3
N Vererbung Submatrix mit Verweis auf Matrix erstellen Java Basics - Anfänger-Themen 9
J Matrix erstellen Java Java Basics - Anfänger-Themen 7
B Transponiertes Matrix Java Basics - Anfänger-Themen 12
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
C Matrix transponieren - Hilfe Java Basics - Anfänger-Themen 1
D Ausgabe einer Matrix mit System.out.println Java Basics - Anfänger-Themen 6
T Art 4 Felder Matrix Memory Java Basics - Anfänger-Themen 2
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
L Matrix(Array) minimieren... Java Basics - Anfänger-Themen 9
E Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 7
S eingegebene Matrix anzeigen Java Basics - Anfänger-Themen 4
J Matrix für Schachbrett Java Basics - Anfänger-Themen 6
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bilddaten in Matrix umwandeln Java Basics - Anfänger-Themen 1
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
O Matrix Multiplizieren Java Basics - Anfänger-Themen 4
S LWJGL - Matrix vom Matrixstack laden Java Basics - Anfänger-Themen 3
T Matrix auf Symmetrie überprüfen Java Basics - Anfänger-Themen 6
V Matrix Transponieren Java Basics - Anfänger-Themen 3
V Methoden Matrix als 1D Array mit Werten füllen Java Basics - Anfänger-Themen 12
W Zweidimensionale Arrays als Matrix ausgeben Java Basics - Anfänger-Themen 8
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
O Matrix ordnen Java Basics - Anfänger-Themen 4
M Symmetrische Matrix Java Basics - Anfänger-Themen 2
W Methoden Rang von einer Matrix mit Gauss Java Basics - Anfänger-Themen 0
U Matrix Subtrahieren Java Basics - Anfänger-Themen 12
E Input/Output convert string to two dimensional char and output = matrix Java Basics - Anfänger-Themen 2
A daten vom 1d array in 2d matrix speichern Java Basics - Anfänger-Themen 3
I Matrix überprüfen Java Basics - Anfänger-Themen 8
Z Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 13
K Methoden Einlesen einer unbegrenzten Matrix über Konsole Java Basics - Anfänger-Themen 6
O Einlesen einer Matrix von der Console Java Basics - Anfänger-Themen 18
N Matrix/Vektoren Java Basics - Anfänger-Themen 3
T Methode, die eine 2 dimensionale Matrix kopiert. Java Basics - Anfänger-Themen 16
J Matrix Java Java Basics - Anfänger-Themen 3
D 2 mehrdimensionale Matrix einlesen Java Basics - Anfänger-Themen 2
A N*N Matrix Determinante berechnen Java Basics - Anfänger-Themen 47
K Quadratische Matrix um 90° drehen Java Basics - Anfänger-Themen 5
C Programm zur Berechnung der Spur einer Matrix Java Basics - Anfänger-Themen 4
B Zeilenumbruch (zweidim. Matrix) Java Basics - Anfänger-Themen 2
O Java Matrix mal Matrix über while Schleife... Java Basics - Anfänger-Themen 10
O Transponieren einer Matrix per While-Schleife Java Basics - Anfänger-Themen 3
M Matrix - Probelm Java Basics - Anfänger-Themen 7
O 2D Matrix befüllen mit geraden Zahlen!? Java Basics - Anfänger-Themen 14
J Java Matrix befüllen Java Basics - Anfänger-Themen 5
M Matrix Matrix Multiplikation Java Basics - Anfänger-Themen 6
F Matrix Java Basics - Anfänger-Themen 11
E Array als Matrix Java Basics - Anfänger-Themen 21
G OOP Parameter Matrix Java Basics - Anfänger-Themen 2
N Matrix Klasse Java Basics - Anfänger-Themen 4
B Maske an eine Matrix anpassen Java Basics - Anfänger-Themen 5
W Matrix übergeben Java Basics - Anfänger-Themen 7
T Matrix transponieren Java Basics - Anfänger-Themen 17
W Eine Methode schreiben, ob eine Matrix eine Diagonalmatrix ist.? Java Basics - Anfänger-Themen 3
M String Datei in Float-Matrix umwandeln Java Basics - Anfänger-Themen 8
D Problem: Werte eine Matrix vergleichen! Java Basics - Anfänger-Themen 5
B Matrix Java Basics - Anfänger-Themen 2
Semox Matrix multiplizieren Java Basics - Anfänger-Themen 4
N Matrix an toString Java Basics - Anfänger-Themen 7
C Diagonale in einem NxN Matrix Java Basics - Anfänger-Themen 6
F Einträgen von Matrix zu sotieren Java Basics - Anfänger-Themen 2
D JUnit auf Matrix anwenden Java Basics - Anfänger-Themen 5
J Spezielle Matrix ausgeben ! Java Basics - Anfänger-Themen 8
S Problem bei Matrix Addition Java Basics - Anfänger-Themen 5
F matrix werte übergeben Java Basics - Anfänger-Themen 5
M Hauptdiagonale Matrix berechnen Java Basics - Anfänger-Themen 6
M Klassenerstellung für Matrix mit Rechenopperationen Java Basics - Anfänger-Themen 42
D Matrix .bat datei erstellen und öffnen Java Basics - Anfänger-Themen 2
J Matrix ausgeben Java Basics - Anfänger-Themen 9
N Matrix Matrix Produkt Java Basics - Anfänger-Themen 7
N prüfe ob etwas in einer Matrix steht... Java Basics - Anfänger-Themen 14
L rechtecke zeichnen anhand von matrix Java Basics - Anfänger-Themen 27
J Matrix aus Datei einlesen mit StreamTokenizer Java Basics - Anfänger-Themen 3
K Transponiere Matrix Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben