(Anti)diagonal automation

Counting from the top right element to the the bottom left element of an indicative 5x5 matrix, is there a quick way to automate the simulation of all the antidiagonals?
a(1,1) =1
a(2,1) =2
a(1,2) =2
a(3,1)= 3
a(2,2)=3
a(1,3)=3
a(4,1)=4
a(2,3)=4
a(3,2)=4
a(1,4)=4
a(1,5)=5
a(4,2)=5
a(3,3)=5
a(2,4)=5
a(5,1)=5
a(5,5)=1

4 Comments

What does it mean to "simulate" the anti-diagonals?
Are you asking how to create that array?
It is not clear what your goal is, since you do not seem to be doing something consistent along all the anti-diagonals.
antidiagonal: All elements from the top right element to the the bottom left element. The code describes 5 of them for an indicative 5x5 matrix.
John D'Errico
John D'Errico on 17 Feb 2018
Edited: John D'Errico on 17 Feb 2018
Sigh. I know what an anti-diagonal is.
What you have not said is what is your goal. You filled only the first 5 anti-diagonals. Then you stuffed the (5,5) element with a 1. So what are you looking to get? Why did you not fill the other ant-diagonals? How do we know what you are looking for here?
Finally, what does it mean to SIMULATE anti-diagonal?
how can I take the elements of all antidiagonals from any matrix?

Sign in to comment.

Answers (1)

Steven Lord
Steven Lord on 17 Feb 2018

3 votes

Flip the matrix using the flip function then call diag.

3 Comments

I am searching for a code to use it for the other (smaller) anti-diagonals as well.
The second argument in the 'diag' function provides for the smaller diagonals, which "flipped" would be the smaller anti-diagonals.

Sign in to comment.

Categories

Products

Asked:

on 17 Feb 2018

Community Treasure Hunt

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

Start Hunting!