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?

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2012 年 9 月 20 日
編集済み: Azzi Abdelmalek 2012 年 9 月 20 日

1 投票

A = [2 9 4; 4 9 2; 1 5 0]
fliplr(diag(flipud(A))')

4 件のコメント

Lily
Lily 2012 年 9 月 20 日
thx so much Azzi ;) This is a really cool soultion!
Azzi Abdelmalek
Azzi Abdelmalek 2012 年 9 月 20 日
編集済み: Azzi Abdelmalek 2012 年 9 月 20 日
or simpler
diag(rot90(A))'
or
diag(fliplr(A))'
Matt Fig
Matt Fig 2012 年 9 月 21 日
Also, for any square matrix with N rows:
A(N:N-1:N^2-1)
Andrei Bobrov
Andrei Bobrov 2012 年 9 月 21 日
A(numel(A)-size(A,1)+1:-2:size(A,1))

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeOperating on Diagonal Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by