Matrizen multiplizieren - OOP

districon

Bekanntes Mitglied
Hey,

ich weiß ehrlich gesagt nicht, was ich noch falsch mache.
Java:
static Matrix multiply(Matrix a, Matrix b){
         long erg = 0;
        Matrix result = new Matrix(a.getNumberOfRows(), b.getNumberOfColumns());
        if (a != null && b != null){
            if (a.getNumberOfColumns() == b.getNumberOfRows()){
                for(int i = 0; i < a.getNumberOfColumns(); i++)
                {
                    for(int j = 0; j < a.getNumberOfRows(); j++)
                    {
                        for(int k = 0; k < b.getNumberOfRows(); k++)
                        {
                             erg += a.get(i,k) * b.get(k,j);
                            result.set(i,j,erg);
                        }
                    }
                }
            } return result;
        }
        return null;
    }
Kann mir jemand einen Tipp geben wo mein Fehler ist? Danke
 

httpdigest

Top Contributor
Du inkrementierst die Variable `erg` immer weiter und weiter und weiter. Du musst sie auch auf 0L zurücksetzen, wenn du mit einem Matrixelement fertig bist. Also wohl vor der k-Schleife.
Am besten deklarierst du `erg` überhaupt erst direkt vor der k-Schleife.
 

mihe7

Top Contributor
Und result in den if-Block schmeißen. Bringt ja nix, wenn Du vorher auf a zugreifst und hinterher prüfst, ob a null ist. Da ist die NullPointerException schon geworfen.
 

Neue Themen


Oben