How to Sum matrix diagonals
186 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Krish Desai
am 27 Sep. 2015
Kommentiert: Tia Miller
am 15 Okt. 2018
If I have the following matrix
a = [1 2 3; 4 5 6; 7 8 10
a =
1 2 3
4 5 6
7 8 10
How do I sum the diagonal of 7,5,3? I know that to sum 1,5,10 I use
sum(diag(a))
But when I try
sum(diag(a,2))
The answer is 3. Is there a built in function that calculates the sum, or do I have to make a while loop?
1 Kommentar
Tia Miller
am 15 Okt. 2018
sum(diag(a,2)) is summing the diagonal 2 away from the main diag, which has one entry, 3.
sum(diag(flip(a))) will sum 3, 5, 7, or the main diag after the matrix has been flipped
Akzeptierte Antwort
Andrei Bobrov
am 27 Sep. 2015
Bearbeitet: Andrei Bobrov
am 27 Sep. 2015
sum(diag(a(:,end:-1:1)));
or summing all diagonals:
sum(spdiags(rot90(a)));
0 Kommentare
Weitere Antworten (2)
Ahmed Diaa
am 5 Mai 2018
x=sum(diag(E));% calculating the normal diagonal
y=sum(diag(flip(E)));% calculating the inverse diagonal
z=[];% subtracting the common element
s=y+x-z ;% the sum
0 Kommentare
Siehe auch
Kategorien
Mehr zu Operating on Diagonal Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!