# Programm zur Berechnung der Spur einer Matrix



## Carpe_Ratio (5. Mrz 2012)

Hallo,

ich versuche einen Algorithmus/Programm zu schreiben, mit dessen Hilfe die Spur eine Matrix bestimmt werden kann.

Die Spur einer Matrix berechnet sich aus der Summe der Elemente der Hauptdiagonalen.

z.B. 
(1,2,3)
      (4,5,6)
      (7,8,9) => die Spur wäre 1+5+9=15

bisher habe ich zu "Papier" gebracht:


```
public static int traceMatrix(int a[][]){
	    int sum = 0;
	    for(int row = 0; row < a.length; row++){
	        for(int col = 0; col <= row; col++){
	           sum += a[row][col];
	        }
	   }
	    return sum;
	}
```

funktioniert aber leider nicht in Eclipse  was haltet ihr davon?


----------



## tfa (5. Mrz 2012)

> funktioniert aber leider nicht in Eclipse was haltet ihr davon?


Erstmal ist deine Fehlerbeschreibung ziemlich dürftig. Ich nehme an, es kommt das falsche Ergebnis raus. 
Liegt wohl daran, dass die Methode nicht das macht, was sie soll. Kleiner Tipp: Du brauchst nur eine Schleife.


----------



## SlaterB (5. Mrz 2012)

um den nun schon mal (unnütz) gebauten Code auch auszuprobieren:

> col = 0; col <= row; col++

col läuft zu hoch? row lässt du nicht ganz so weit laufen


----------



## BoBoHelp (5. Mrz 2012)

```
public int getSpur(int matrix[][]){
    int summe = 0;
    for(int i=0; i<matrix.length;i++){
            summe += matrix[i][i];
    }
    return summe;
}
```


----------



## Moon93 (5. Mrz 2012)

Hallo,

wie tfa schon sagte, du brauchst nur eine Schleife.
Überleg mal, du hast eine Quadratische Matrix, und willst immer in die Diagonalelemente.
Also 0,0
1,1
2,2
3,3

Da reicht dir ein Zähler aus um auf diese Elemente zuzugreifen.

Noch ne kleine Anmerkung, da du eine Funktion schreibst die eine beliebige zwei-dimensionale Matrix bekommt, würde ich noch überprüfen ob sie wirklich Quadratisch ist.

Grüße Moon93


----------

