Funktion Matrizenmultiplikation

wheinz2409

Mitglied
Hallo,

habe hier ein kleines prob. In der main Methode sollen zwei Matrizen angelegt werden und diese dann an eine weitere Methode übergeben werden, die dann diese multipliziert. Irgendwie kriege ich bei der Ausgabe nur komische Zeichen und Zahlen. Hoffe es kann jemand einem Java Anfänger helfen.

mfg
Java:
public class matrizenMultipli {

	/**
	 * Zwei Matrizen multiplizieren
	 */
	
	public static int[][] maMulti (int matrix_a[][], int matrix_b[][]) {
		int matrix_c[][] = new int[10][10];
		for (int i=0; i<10; i++) {
			for (int j=0; j<10; j++) {
				for (int k=0; k<10; k++) {
					matrix_c[i][j] =+ matrix_a[i][k]*matrix_b[k][j];
				}
			}
		}
		return matrix_c;
	}

	public static void main(String[] args) {
		int wert=1;
		System.out.println("Zwei Matrizen Multiplizieren");
		int matrix_a[][] = new int[10][10];
		int matrix_b[][] = new int[10][10];
		
		for (int i=0; i<matrix_a.length; i++) {
			for (int j=0; j<matrix_a.length; j++) {
				matrix_a[j][i] = wert;
				matrix_b[j][i] = wert;
				wert++;
				System.out.print(matrizenMultipli.maMulti(matrix_a, matrix_b));
			}
		System.out.println();
		
		}
	}
}
 

Landei

Top Contributor
[c]System.out.println(java.util.Arrays.toString(meinArray));[/c]

Nebenbei sollte man Code möglichst allgemein schreiben. Statt z.B. fest von der Größe 10 auszugehen, sollte man diese lieber von den übergebenen Arrays auslesen (die man sowieso noch auf die richtigen Dimensionen prüfen sollte). Sonst hast du ein Problem, wenn du in einem halben Jahr deinen Code wieder herauskramst und die Funktion für 11x11-Matrizen verwendest.
 
S

SlaterB

Gast
bedenke auch
Java:
public class Test {
    public static void main(String[] args)  {
       int x = 4;
       int y = 4;
       x =+ 5;
       y += 5;
       System.out.println(x);
       System.out.println(y);
    }
}
 

wheinz2409

Mitglied
Das mit dem hash code verstehe ich nicht ganz? Wenn ich die beiden erstellten Matrizen ausgebe, stehen alle Werte richtig im Array. Nur nach der Multiplikation bekomme ich so komische Werte.
mfg
 
S

SlaterB

Gast
> Wenn ich die beiden erstellten Matrizen ausgebe,
wo machst du das denn? im Code nicht zu sehen

> Nur nach der Multiplikation bekomme ich so komische Werte.
was für eine Ausgabe denn genau?
siehe auch mein Post zwischendurch, 14:22
 

wheinz2409

Mitglied
@SlaterB, deinen Beitrag habe ich gesehen und verstanden was da passiert. Habe meinen Code auch schon geändert. Es sollen zwei Matrizen (matrix_a & matrix_b) miteinander multipliziert werden. Nach der Berechnung bekomme ich folgendes als Ausgabe:

[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
[[I@19821f, [I@addbf1, [I@42e816, [I@9304b1, [I@190d11, [I@a90653, [I@de6ced, [I@c17164, [I@1fb8ee3, [I@61de33]
 

wheinz2409

Mitglied
Kann es vielleicht daran liegen dass ich bei der Ausgabe keinen Index angebe, auf welches Feld ich bei der berechneten Matrize zugreifen möchte?
 
S

SlaterB

Gast
tja, bei zwei Dimensionen versagt auch Arrays.toString(meinArray), nutze altbekannte Schleifen,
schreibe dir am besten eine Untermethode ausgabe(int[][] array), die System.out.println verwendet oder einen String zusammenbaut und zurückgibt,
übe zunächst mit eindimensionalen Arrays, falls es Probleme gibt

du hast noch nicht verraten, was "Wenn ich die beiden erstellten Matrizen ausgebe, stehen alle Werte richtig im Array." bedeutet
 

wheinz2409

Mitglied
Ich meinte wenn die beiden Matrizen (matrix_a & matrix_b) erstellt und mit Werten gefüllt wurden. Wenn ich diese vor der Multiplikation ausgebe, steht in jedem Feld eine Zahl. Nur wenn ich die Methode maMulti aufrufe und matrix_c mit den multiplizierten Werten fülle, bekomme ich oben gezeigte Ausgabe.
 
S

SlaterB

Gast
> Wenn ich diese vor der Multiplikation ausgebe,

du weigerst dich weiter, den Code dazu zu nennen, wahrscheinlich nutzt du Schleifen, z.B. jeden Wert einzeln bei der Befüllung,
fürs Ergebnis verwendest du stattdessen eine andere Art der Ausgabe, anderen Code

du siehst nicht ein, dass es also am Code liegt, nicht an der Wahl der Arrays, ob nun A, B oder Ergebnis?

> Kann es vielleicht daran liegen dass ich bei der Ausgabe keinen Index angebe, auf welches Feld ich bei der berechneten Matrize zugreifen möchte?

genau, das kann sehr gut sein
 

wheinz2409

Mitglied
Hier der Code der die Berechnung durchführt und die matrix_c füllt:

Java:
for (int i=0; i<10; i++) {
			for (int j=0; j<10; j++) {
				for (int k=0; k<10; k++) {
					matrix_c[i][j] += matrix_a[i][k]*matrix_b[k][j];
				}
			}
		}
		return matrix_c;

Mittlerweile habe ich einen Index bei der Ausgabe hinzugefügt und bekomme jetzt für jedes Feld eine 0 ausgegeben.
 
S

SlaterB

Gast
ich würde dir jetzt nebenbei vorschlagen für Tests auf eine kleinere Maxtrix von 1x1 oder 2x2 umzustellen,
aber wie Landei schon gesagt hat geht das bei deinem Code nicht so leicht,
überlege dennoch in der Richtung

außerdem viele System.out.println() einbauen, schaue doch genau nach was für jeden Index an Zahlen multipliziert werden,

bestimmt ist dein Problem aber, dass du während der Befüllung der Arrays schon rechnest, da sind doch die meisten Stellen im Array noch leer, 0,
folgender Test
Java:
public class Test
{
    public static void main(String[] args)
    {
        matrizenMultipli.main(null);
    }
}


class matrizenMultipli
{
    public static int[][] maMulti(int matrix_a[][], int matrix_b[][])
    {
        int matrix_c[][] = new int[10][10];
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                for (int k = 0; k < 10; k++)
                {
                    matrix_c[i][j] += matrix_a[i][k] * matrix_b[k][j];
                }
            }
        }
        return matrix_c;
    }

    public static void main(String[] args)
    {
        int wert = 1;
        System.out.println("Zwei Matrizen Multiplizieren");
        int matrix_a[][] = new int[10][10];
        int matrix_b[][] = new int[10][10];

        for (int i = 0; i < matrix_a.length; i++)
        {
            for (int j = 0; j < matrix_a.length; j++)
            {
                matrix_a[j][i] = wert;
                matrix_b[j][i] = wert;
                wert++;
            }
        }
        System.out.print(matrizenMultipli.maMulti(matrix_a, matrix_b)[0][0]);
    }
}
liefert als Ausgabe (nur eine Stelle des Ergebnisarrays, siehe Code)
Code:
Zwei Matrizen Multiplizieren
3355
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
M Eine Funktion zuweisen Java Basics - Anfänger-Themen 3
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
I Generische Funktion Java Basics - Anfänger-Themen 3
E Pervasive PSQL insert funktion geht nicht Java Basics - Anfänger-Themen 9
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
M toDouble Funktion Java Basics - Anfänger-Themen 3
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
X Ackermannsche Funktion Java Basics - Anfänger-Themen 32
F Arrays: Mathematische Funktion Java Basics - Anfänger-Themen 19
P Dezimal zu Hexadezimalzahl Funktion Java Basics - Anfänger-Themen 5
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
M Arrays in Funktion Kopieren und Bearbeiten Java Basics - Anfänger-Themen 4
B Funktion mit mehreren Rückgabewerten aka Prozeduren? Java Basics - Anfänger-Themen 12
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
D Funktion nur 1 Rueckgabewert Java Basics - Anfänger-Themen 9
M Wie lang eine Funktion/Methode? Java Basics - Anfänger-Themen 51
N den inhalt eines array per funktion ausgeben Java Basics - Anfänger-Themen 8
R Ackermann Funktion Java Basics - Anfänger-Themen 2
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
T Rekursion Warum bricht meine Funktion nicht ab Java Basics - Anfänger-Themen 4
N Funktion funktioniert nicht immer Java Basics - Anfänger-Themen 6
E Contain-funktion überlisten Java Basics - Anfänger-Themen 4
J Division ohne Arithmetische Funktion Java Basics - Anfänger-Themen 2
S Funktion in Klasse auslagern Java Basics - Anfänger-Themen 4
J Problem mit Boolean bei Funktion! Java Basics - Anfänger-Themen 5
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
D Nullstellen einer Funktion 3. Grades mit Horner Schema Java Basics - Anfänger-Themen 6
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
B Zugriffe in einer Klasse / Funktion Java Basics - Anfänger-Themen 9
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
T Lambda-Funktion bei Binärbäumen Java Basics - Anfänger-Themen 13
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
M Thread.sleep() Funktion Java Basics - Anfänger-Themen 1
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
E Compare-Funktion bei eigener Klasse Java Basics - Anfänger-Themen 4
S Threads run - Funktion wird nur einmal ausgeführt. Java Basics - Anfänger-Themen 8
B Anwender soll mathematische Funktion eingeben können, Einfachster Fnktionsplotter Java Basics - Anfänger-Themen 4
R If Funktion funktioniert nicht :P Java Basics - Anfänger-Themen 3
H Funktion in Hintergrund und Vordergrund ausführen Java Basics - Anfänger-Themen 11
S Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert..? Java Basics - Anfänger-Themen 9
S Funktion eines Stacks Java Basics - Anfänger-Themen 4
T Integer-Objekt über Hash-Funktion in Array ablegen Java Basics - Anfänger-Themen 1
S Separate Funktion für JUnit-Test Java Basics - Anfänger-Themen 3
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
T Klassen Funktion in einem Funktionsaufruf definieren Java Basics - Anfänger-Themen 3
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
X Eval-Funktion mit Variable Java Basics - Anfänger-Themen 2
T Screenreader Funktion Java Basics - Anfänger-Themen 2
S Wertetabelle einer Funktion f : R -> R Java Basics - Anfänger-Themen 1
P Methoden suche funktion die char wert ausgibt wenn man numerischen wert und radix angibt Java Basics - Anfänger-Themen 1
1 repaint() Funktion erzeugt Flackern Java Basics - Anfänger-Themen 33
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
shiroX OOP Java Funktion implementieren Java Basics - Anfänger-Themen 3
O Debug-Funktion mit Slick - Kleines Problem Java Basics - Anfänger-Themen 5
F Funktion immer zur vollen Stunde? Java Basics - Anfänger-Themen 3
S ResultSet close() in funktion nich möglich. Java Basics - Anfänger-Themen 8
C Meine erste Funktion Java Basics - Anfänger-Themen 12
J Funktion um JSON per Post senden/emfangen Java Basics - Anfänger-Themen 3
G OOP Aus Objekt auf Funktion der erzeuger Klasse zugreifen? Java Basics - Anfänger-Themen 11
D Binäre Suche für Integerarray in rekursiver Funktion Java Basics - Anfänger-Themen 5
M Interface als Konstruktorparameter nutzen, um Funktion zu plotten Java Basics - Anfänger-Themen 14
NR_EIGHT Benutzereingabe in Funktion verpacken Java Basics - Anfänger-Themen 4
J Funktion definieren und ausfuehren Java Basics - Anfänger-Themen 27
D Loop Funktion für Robot Klasse Java Basics - Anfänger-Themen 5
N mathematische Funktion Java Basics - Anfänger-Themen 29
R Programm verstehen, Funktion Java Basics - Anfänger-Themen 4
C Automatisches Ausfuehren einer Funktion beim Laden eines Jar files Java Basics - Anfänger-Themen 3
O Nicht Standard Form boolesche Funktion in Standard Form parsen Java Basics - Anfänger-Themen 3
F Sleep Funktion Java Basics - Anfänger-Themen 12
S Euklid Funktion Java Basics - Anfänger-Themen 8
H Funktion mit Argumenten Java Basics - Anfänger-Themen 5
Q Random Funktion JButtons Java Basics - Anfänger-Themen 6
O Probleme mit der repaint-Funktion Java Basics - Anfänger-Themen 6
F Eine Frage über paint() Funktion Java Basics - Anfänger-Themen 2
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
C Probleme mit replaceAll Funktion Java Basics - Anfänger-Themen 9
S Vector mit beliebigen Klassen an Funktion übergeben Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben