Bearbeitung von Matrizen

seide

Mitglied
Hallo zusammen, ich brauche eure Hilfe.
Ich habe Klasse Vektor und Klasse Matrix:
Java:
public class Vektor {
	private double[] vektor;

	public Vektor() {
		this.vektor = new double[0];
	}

	public Vektor(Vektor cop) {
		vektor = cop.vektor;
	}

	public Vektor(double[] vek) {
		int N = vek.length;
		this.vektor = new double[N];
		for (int i = 0; i < N; i++)
			this.vektor[i] = vek[i];
	}

	public Vektor(int size) {
		this.vektor = new double[size];
	}
}

Java:
public class Matrix {

	private double[][] matrix;
	private int zeilen;
	private int spalten;

	public Matrix() {
		this.matrix = new double[0][0];
	}

	public Matrix(Matrix mat) {
		zeilen = mat.getZeile();
		spalten = mat.getSpalten();
		matrix = new double[zeilen][spalten];
		for (int i = 0; i < zeilen; i++) {
			for (int j = 0; j < spalten; j++) {
				matrix[i][j] = mat.matrix[i][j];
			}
		}
	}

	public int getSpalten() {
		// Spaltenlänge
		return matrix.length;
	}

	public int getZeile() {
		// Zeilenlänge
		return matrix[0].length;
	}

	public Matrix(double[][] zweid) {
		matrix = zweid;
		spalten = getSpalten();
		zeilen = getZeile();
	}

	public Matrix(int anzahlZeile, int anzahlSpalte) {
		this.matrix = new double[anzahlZeile][anzahlSpalte];
	}

	public Matrix(int zahl) {
		this.matrix = new double[zahl][zahl];
	}

	public int[] getLength() {
		int[] laenge = new int[matrix.length];
		System.out.println("Die länge von Array: " + laenge.length);
		return laenge;
	}

	public Vektor summeProZeile() {
		double sum = 0;
		for (int row = 0; row < matrix.length; row++) {
			for (int col = 0; col < matrix[row].length; col++) {
				sum = sum + matrix[row][col];
			}
			System.out.println(sum);
		}
		return null;
	}

	public Vektor maxProZeile() {
		for (int row = 0; row < matrix.length; row++) {
			double max = matrix[row][0];
			for (int col = 1; col < matrix[row].length; col++) {
				if (matrix[row][col] > max)
					max = matrix[row][col];
			}
			System.out.println("Maximum in zeile[" + row + "]: " + max);
		}
		return null;
	}

	}
in der Klasse Matrix, Methode summeProZeile() liefert ein Vektor-Objekt mit den Summe pro Zeile und Methode maxProZeile() liefert ein Vektor-Objekt mit maximalen Werten. Also ich weiss nicht wie kann ich Vektor-Objekt zurückliefern?
 

timbeau

Gesperrter Benutzer
Grundsätzlich mit
Java:
public Vektor getVektor(...) {
return varVektor;
}

wobei varVektor irgendwie vorher definiert werden muss. Läuft wie mit int und String. Also in dieser Methode den Vektor erstellen mit Werten und dann zurückgeben.
 

seide

Mitglied
Grundsätzlich mit
Java:
public Vektor getVektor(...) {
return varVektor;
}

wobei varVektor irgendwie vorher definiert werden muss. Läuft wie mit int und String. Also in dieser Methode den Vektor erstellen mit Werten und dann zurückgeben.

Naja das verstehe ich, aber z.b. hier:
Java:
public Vektor maxProZeile() {
        for (int row = 0; row < matrix.length; row++) {
            double max = matrix[row][0];
            for (int col = 1; col < matrix[row].length; col++) {
                if (matrix[row][col] > max)
                    max = matrix[row][col];
            }
            System.out.println("Maximum in zeile[" + row + "]: " + max);
        }
        return null;
    }

also ich verstehe nicht wie soll ich max als Vektor setzen, weil Vektor bei mir ist eindimensionale und matrix zweidimensionale.
 

timbeau

Gesperrter Benutzer
Du erstellst ein Array mit doubleWerten und dann einen neuen Vektor mit
Java:
Vektor v1 = new Vektor(meinDoubleArray)

Wenn die Frage war, was im Vektor stehen muss, stell sie bitte auch so.

M:
1 2 3
3 2 3
4 0 0

Soll dann der Vektor (3,3,4) sein?
 

Paddelpirat

Bekanntes Mitglied
z.B. so:

Java:
    public Vektor maxProZeile() {
        double[] maxValues = new double[matrix.length];
        for (int row = 0; row < matrix.length; row++) {
            double max = matrix[row][0];
            for (int col = 1; col < matrix[row].length; col++) {
                if (matrix[row][col] > max)
                    max = matrix[row][col];
            }
            maxValues[row]=max;
            System.out.println("Maximum in zeile[" + row + "]: " + max);
        }

        return new Vektor(maxValues);
    }
 

Paddelpirat

Bekanntes Mitglied
Bleibt ja noch die Aufgabe mit den Summen pro Zeile. Von daher muss sich seide mit der Lösung beschäftigen, um die Methode
Code:
summeProZeile
hinzubekommen.
 

seide

Mitglied
Ich habe noch eine Frage.
Die methode kumuliertProZeile() liefert ein Vector mit den kumulierten Werten einer Zeile.
Kumulierten Werten- bedeuted das die Summe?
z.b:
double[][] array={{2,4,1},{1,1,1},{2,3,1}}

also ich möchte in der Zeile 2 Werte kumulieren.Soll dann die Methode, 6 als Vector zurückgeben?
 

Paddelpirat

Bekanntes Mitglied
Tja, da musst du deine Frage genauer stellen *g*. Zweite Zeile der Matrix wäre 1 1 1, zweite Zeile im Array 2 3 1. Was mich nur wundert ist, dass du ja schon eine Methode summeProZeile hast, die ja anscheinend genau das gleiche machen würde.

Edit: Habe gerade mal nachgeguckt. Ich glaube mit Kommulierten Werten ist was anderes gemeint:

Für Die Zeile 2 3 1 in der Matrix wäre es dann der folgende Vektor:

2 5 6

weil am Anfang hast du die 2 -> erster Wert 2
dann addierst du 3 -> zweiter Wert 2 + 3=5
dann addierst du 1 -> dritter Wert 5 + 1 = 6
 
Zuletzt bearbeitet:

seide

Mitglied
Tja, da musst du deine Frage genauer stellen *g*. Zweite Zeile der Matrix wäre 1 1 1, zweite Zeile im Array 2 3 1. Was mich nur wundert ist, dass du ja schon eine Methode summeProZeile hast, die ja anscheinend genau das gleiche machen würde.

in der Methode summeProZeile() gibt zurück alle Zeile, jetzt soll nur die i-te Zeile bearbeiten, aber ich weiss schon wie das geht, nur ich war nicht sicher was bedeutet kumulieren:oops:.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L String bearbeitung Java Basics - Anfänger-Themen 7
U Probleme bei String bearbeitung Java Basics - Anfänger-Themen 5
1 Zeit und Datum der Letzten Bearbeitung einer Datei auslesen Java Basics - Anfänger-Themen 3
M JLabel zur Bearbeitung an Methode übergeben Java Basics - Anfänger-Themen 8
M Rekusive bearbeitung von Objekten Java Basics - Anfänger-Themen 10
A Klassenübergreifende Bearbeitung eines Arrays Java Basics - Anfänger-Themen 3
S 2D Array Matrizen Java Basics - Anfänger-Themen 7
O Erstes Programm: Matrizen Multiplikation Java Basics - Anfänger-Themen 10
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
E 2 Matrizen multiplizieren - Output fehlt... Java Basics - Anfänger-Themen 5
H Erste Schritte Determinantenberechnung von Matrizen Java Basics - Anfänger-Themen 1
U Erste Schritte Aufbau eines kleinen Matrizen-Programms(MVC; OOP) Java Basics - Anfänger-Themen 20
B summe von 2 Matrizen Java Basics - Anfänger-Themen 20
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
R Matrizen nebeneinander ausgeben. Java Basics - Anfänger-Themen 1
B Matrizen Operationen Java Basics - Anfänger-Themen 7
A Matrizen aufgabe Java Basics - Anfänger-Themen 46
U Größenvergleich / Dimensionsvergleich zweier Matrizen Java Basics - Anfänger-Themen 2
N NullPointerException beim Addieren von Matrizen Java Basics - Anfänger-Themen 3
L Matrizen aufteilen Java Basics - Anfänger-Themen 3
P Matrizen zusammenfügen Java Basics - Anfänger-Themen 8
M Array Matrizen, int[][] Java Basics - Anfänger-Themen 5
K Matrizen Multiplikation Java Basics - Anfänger-Themen 3
L Mit matrizen rechnen Java Basics - Anfänger-Themen 19
J Matrizen Java Basics - Anfänger-Themen 10
C Dynamische Matrizen Java Basics - Anfänger-Themen 4
C Verwendung von Matrizen in einer Schleife Java Basics - Anfänger-Themen 5
C große Matrizen, Performance, (Pointer?) Java Basics - Anfänger-Themen 6
M Speichern von Matrizen in Maps günstiger als in Arrays? Java Basics - Anfänger-Themen 22
J Einlesen von Werten in zwei Matrizen Java Basics - Anfänger-Themen 4
G Addition von 2 Matrizen Java Basics - Anfänger-Themen 31
M Matrizen zeilenweise einlesen (Größe unbekannt) Java Basics - Anfänger-Themen 4
S ? Matrix / Matrizen ? Java Basics - Anfänger-Themen 32

Ähnliche Java Themen

Neue Themen


Oben