You are now following this Submission
- You will see updates in your followed content feed
- You may receive emails, depending on your communication preferences
Efficient and compact code for summing each diagonal (or anti-diagonal) in a matrix without using a for-loop.
Works well for large matrices.
For 3D matrix input A, the sum of diagonals of A(:,:,k) are returned in
sumMat(:,k). The script is typically faster than a for-loop based approach when A is 3D.
The code is most efficient for wide or tall matrices. Inline the code when it is used as a part of an iterative algorithm, to avoid recomputing constant indexing matrices.
Note that a for-loop implementation with the diag() function can be faster, and has a lower memory requirement, especially in the square 2D case.
Cite As
Marcus Björk (2026). sumDiag (https://au.mathworks.com/matlabcentral/fileexchange/44162-sumdiag), MATLAB Central File Exchange. Retrieved .
General Information
- Version 1.4.0.0 (1.59 KB)
MATLAB Release Compatibility
- Compatible with any release
Platform Compatibility
- Windows
- macOS
- Linux
