Running On matrix by diagonals

1 view (last 30 days)
Harel Harel Shattenstein
Harel Harel Shattenstein on 8 Jul 2018
Edited: Guillaume on 8 Jul 2018
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)

Guillaume
Guillaume on 8 Jul 2018
Edited: Guillaume on 8 Jul 2018
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!