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