# Matrizen multiplizieren - OOP



## districon (18. Mai 2021)

Hey,

ich weiß ehrlich gesagt nicht, was ich noch falsch mache.

```
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 (18. Mai 2021)

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.


----------



## districon (18. Mai 2021)

httpdigest hat gesagt.:


> 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.


Stimmt das war der Fehler, danke


----------



## mihe7 (19. Mai 2021)

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.


----------

