Vectorized Diagonal of any Multi-Dimensional Matrix

Given an N-D matrix, this routine will return the diagonal elements of any two dimensions
257 Downloads
Updated 17 Jan 2015

View License

Suppose you have a matrix which was generated by the following MATLAB command:
>> ND = repmat(diag(1:3),[1 1 2 2 1 2]);
The size of this matrix is found to be: [3 3 2 2 1 2]

This routine can return the diagonal terms of this matrix simply by specifying the row dimension and the column dimension of the 2-D plane of interest:
>> dND = diagND(ND,1,2);

The resulting Matrix, dND, has the following size [1 3 2 2 1 2] and the expected solution of:
[1 2 3] across dimensions 3 through 6.

Cite As

Darin Koblick (2024). Vectorized Diagonal of any Multi-Dimensional Matrix (https://www.mathworks.com/matlabcentral/fileexchange/49067-vectorized-diagonal-of-any-multi-dimensional-matrix), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Operating on Diagonal Matrices in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0