Matrix mit Vektor multiplizieren

Zipe

Mitglied
Hey Leute,

Ich weiß es gibt schon ne Menge zu dem Thema im Internet, aber irgendwie werde ich aus vielem nicht schlau. Es geht wie in der Überschrift erwähnt um die Multiplikation einer Matrix mit einem Vektor.

Java:
public void mul(int [][] matrix, int [] vektor){
			
			int [] newVektor = {0,0,0};
			for(int i = 0; i < matrix.length ; i++){
				for (int j = 0; j < matrix[0].length; j++){
					newVektor[i] += matrix [i][j] * vektor[i];
					System.out.print (newVektor);
				}
					
			}
		}


Führe ich die Methode in der main-methode aus, werden mir aber nur die Speicherplätze der Arrays ausgegeben (jedenfalls glaube ich, dass das die Speicherstellen sind). Ist der Code so überhaupt korrekt? Wie kann ich das ganze korrekt ausführen, sodass ich am Ende den Ergebnisvektor kriege?

Mfg
 
Zuletzt bearbeitet:

stg

Top Contributor
  • Schöner wäre es sicherlich, wenn deine Methode eine Vektor zurückgibt, statt ihn einfach nur zu berechnen und dann wegzuschmeißen.
  • Die Ausgabe kannst du dann in einer gesonderten Methode, unabhängig von der Berechnung realisieren
  • Entweder du programmierst deine Lösung für 3x3 Matrizen und 3-dim Vektoren (bzw auch nx3-Matrizen und 3-dim Vektoren), oder du machst es so allgemein wie möglich für nxm-Matrizen und m-dim Vektoren, aber dieses Mischmasch da gefällt mir nicht wirklich.
  • Den Inhalt deines Arrays kannst du bequem mit Arrays.toString(·) aus java.util ausgeben lassen, wenn du keine bestimmte Formatierung des Ausgabe oÄ wünscht. Momentan gibst du wirklich nur die Adresse im Speicher an, an der dein Vektor liegt.
 
Zuletzt bearbeitet:

Zipe

Mitglied
Danke schonmal!

Habe aus der void-Methode jetzt ne int-Methode gemacht. Allerdings weiß ich nicht genau wie ich den ergebnisvektor ausgebe ...

Java:
 public int mul(int [][] matrix, int [] vektor){
			
			int [] newVektor;
			for(int i = 0; i < matrix.length ; i++){
				for (int j = 0; j < matrix[0].length; j++){
					newVektor[i] += matrix [i][j] * vektor[i];
					
					return newVektor[];
				}
					
			}
		}
funktioniert nicht so ganz ... was schreibe ich in die eckigen klammern?

Also das Ziel ist es Matrizen und Vektoren beliebiger Größe multiplizieren zu können. Allerdings gehe ich davon aus, dass die Dimension des Vektors mit der Höhe der Matrix übereinstimmt. Ich hab die Initialisierung von "newVektor" mal weggenommen, falls du das meintest.

Ich würde die Ausgabe in der main-Methode sonst einfach mit System.out.print (mul(...)) machen ... falls das auch geht.

Sind die Schleifen denn im Allgemeinen richtig?
 

stg

Top Contributor
Der Rückgabetyp muss
Code:
int []
lauten, nicht bloß
Code:
int
. Den "fertigen" Vektor musst du außerhalb der äußeren for-Schleife zurückgeben, sonst bricht deine Methode bereits nach dem ersten Durchlauf der inneren for-Schleife ab.
 

Zipe

Mitglied
Okay, hab grad bemerkt, dass ich den vektor doch initialisieren muss.
Wie kann ich den denn allgemeiner initialisieren? Oder was genau meintest du mit Mischmasch?
 

Zipe

Mitglied
Kann mir vielleicht jemand sagen, wo der Fehler bei der Methode liegt ???:L

Java:
public static int [] mul (int [][] matrix, int [] vektor){
			
			int [] newVektor = {0,0,0};
			for(int i = 0; i < matrix.length ; i++){
				for (int j = 0; j < matrix[0].length; j++){
					newVektor[i] += matrix [i][j] * vektor[i];
					
					
				}
			}
			return newVektor;
		}

irgendwas muss falsch sein ... aber ich komme nicht drauf
 
Zuletzt bearbeitet:

DrZoidberg

Top Contributor
Du multiplizierst einen Vektor mit einer Matrix, indem du die 3 Spalten aus denen die Matrix besteht jeweils mit dem x,y und z Wert des Vektors multiplizierst und die drei Ergebnisvektoren dann addierst.
Code:
(x)   [a d g]       (a)       (d)       (g)
(y) * [b e h] = x * (b) + y * (e) + z * (h)
(z)   [c f i]       (c)       (f)       (i)

  (x*a + y*d + z*g)
= (x*b + y*e + z*h)
  (x*c + y*f + z*i)

Ändere vektor in Zeile 6 um in vektor[j]. Der Rest sieht richtig aus.
 
Zuletzt bearbeitet:

Zipe

Mitglied
Super danke!

hab jetzt noch eine Frage ... ich will, dass ich eine beliebige matrix mit einem beliebigen vektor multiplizieren kann.

Dafür muss ich irgendwas an meiner initialisierung von "newVektor" in meiner Methode ändern.
Aber ich versteh nicht was.

Wenn ich zB.

Java:
	public static int [] mul(int [][] matrix, int [] vektor){
			
			int [] newVektor = {0,0,0,0};
			for(int i = 0; i < matrix.length ; i++){
				for (int j = 0; j < matrix[0].length; j++){
					newVektor[i] += matrix [i][j] * vektor[j];
					
				}
			}
			return newVektor;
		}
schreibe und dann eine 4x2 Matrix multipliziere dann funktioniert auch alles einwandfrei.

Wie kann ich den Vektor irgendwie allgemeiner schreiben?!
 

Zipe

Mitglied
funktioniert zwar für die 3x3 matrix aber gibt nen exception Fehler für die 4x2 ???:L

Edit: Liegt wahrscheinlich daran, dass ich der Methode nen vektor übergebe der (1,1,1) so aussieht ... okay glaube ich habs dann

Edit 2: Ne liegt doch nicht daran :D ich übergebe für die 4x2 nen vektor (-1, 1) ...sollte eigentlich gehen ???:L aber gibt nen fehler
 
Zuletzt bearbeitet:

DrZoidberg

Top Contributor
Wenn du einen Vektor mit einer Matrix multiplizierst, dann muss die Anzahl an Spalten in der Matrix gleich sein zur Anzahl der Elemente im Vektor. Andernfalls macht das ganze mathematisch keinen Sinn.
 

Zipe

Mitglied
Wenn ich aber zB eine Matrix

4 1 2 4
2 1 2 5

habe und einen vektor

1
4

dann müsste das doch machbar sein vom rechnerischen her. Allerdings gibt er mir für sowas nen exception Fehler
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 7
O Matrix, Vektor Java Basics - Anfänger-Themen 9
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
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
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
L Matrix(Array) minimieren... Java Basics - Anfänger-Themen 9
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
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
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
N Matrix Java Basics - Anfänger-Themen 14
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