Running On matrix by diagonals
Show older comments
I am looking for an algorithm that can collect the elements of a matrix in the following way

It can be a non square matrix too
So the answer would be [a41,a42,a31,a43,a32,a21,a44,...]
Answers (1)
One option:
[rows, cols] = size(A);
indices = (1:cols+rows)*rows - (0:rows-1)'*(rows+1);
indices = indices(indices > 0 & indices <= numel(A));
A(indices)
Require R2016b or later for the implicit expansion of the subtraction
Categories
Find more on Operating on Diagonal Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!