Есть ли функция для получения косой диагонали матрицы в Matlab? - PullRequest
2 голосов
/ 05 марта 2011
A=[a_11, a_12; a_21, a_22]

Диагональ перекоса составляет [a_12, a_21]. Прямо сейчас я переворачиваю матрицу и использую diag.

1 Ответ

4 голосов
/ 05 марта 2011

В качестве альтернативы fliplr и diag вы можете индексировать непосредственно в матрицу следующим образом:

A = magic(3);
s = length(A);
idx = s:(s-1):(s*(s-1)+1);
%# for anti-diagonal, use the following 
%#idx = (s*(s-1)+1):(-s+1):s;

skewDiag = A(idx)
skewDiag =
     4     5     6
...