Summe der diagonalen Elemente in einer Matrix

10

Ich versuche die Summe der diagonalen Elemente in einer Matrix herauszufinden. Hier ist n die Größe der quadratischen Matrix und a ist die Matrix. Kann mir das jemand erklären, was hier passiert?

%Vor%     
Hassan Imam 07.02.2016, 11:41
quelle

4 Antworten

6

Versuchen Sie dies, um Ihre zweite Diagonale zu summieren:

%Vor%

Die innere Schleife greift auf diese Einträge zu:

%Vor%

Und der summierte Wert dieser Diagonale für Ihre Beispielmatrix ist:

%Vor%

Der Fehler in Ihrem Code besteht darin, für beide Dimensionen denselben Ausdruck zu verwenden:

%Vor%

wird die erste Diagonale wieder in umgekehrter Reihenfolge bearbeiten [(2, 2), (1, 1), (0, 0)] , was Ihnen zweimal die gleiche Summe gibt.

    
mhawke 07.02.2016, 11:46
quelle
7

Verwenden Sie eine numpige Bibliothek, die für Matrixberechnungen sehr nützlich ist. Für Ihren speziellen Fall:

%Vor%

Sie können numpy einfach mit Pip oder anderen Methoden installieren, die Sie auf vielen Webseiten finden.

Wenn Sie alle Diagonalen und nicht nur die Hauptdiagonale möchten, überprüfen Sie dies , das auch numpy verwendet.

BEARBEITEN

mhawke, wenn Sie antidiagonal (sekundäre Diagonale) berechnen möchten, wie in wikipedia erklärt, können Sie die Matrix umdrehen in numpy

%Vor%     
iblasi 07.02.2016 11:52
quelle
0

versuche das:

%Vor%     
Binyamin Even 07.02.2016 12:30
quelle
0

Da Sie die Positionen der diagonalen Elemente für die Zeile i kennen, können Sie sie ziemlich dicht schreiben wie:

%Vor%

Und für ungerade Matrizen sollten Sie das zentrale Element nicht zweimal hinzufügen:

%Vor%     
xtofl 07.02.2016 12:47
quelle

Tags und Links