How to Sum matrix diagonals
146 次查看(过去 30 天)
显示 更早的评论
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 个评论
Tia Miller
2018-10-15
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
采纳的回答
Andrei Bobrov
2015-9-27
编辑:Andrei Bobrov
2015-9-27
sum(diag(a(:,end:-1:1)));
or summing all diagonals:
sum(spdiags(rot90(a)));
0 个评论
更多回答(2 个)
Ahmed Diaa
2018-5-5
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Operating on Diagonal Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!