Finding the diagonal vector from a square matrix

Hi
I'm trying to find the diagonal of an square matrix but NOT the diagonal vector of the matrix from left to right. I'm trying to find the diagonal of an matrix fram right to left. Below is an example of what I'm trying to achieve:
A = [2 9 4; 4 9 2; 1 5 0];
diagA = diag(A); %Diagonal of the A matrix from left to right
%THE ANSWER: digA = [2 9 0]'
But what I'm trying to get is the diagonal from the A matrix from right to left for [4 9 1]
Is this possible? Can you please help me?

 Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 20 Sep. 2012
Bearbeitet: Azzi Abdelmalek am 20 Sep. 2012
A = [2 9 4; 4 9 2; 1 5 0]
fliplr(diag(flipud(A))')

4 Kommentare

Lily
Lily am 20 Sep. 2012
thx so much Azzi ;) This is a really cool soultion!
Azzi Abdelmalek
Azzi Abdelmalek am 20 Sep. 2012
Bearbeitet: Azzi Abdelmalek am 20 Sep. 2012
or simpler
diag(rot90(A))'
or
diag(fliplr(A))'
Also, for any square matrix with N rows:
A(N:N-1:N^2-1)
A(numel(A)-size(A,1)+1:-2:size(A,1))

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by