如何找到上下对角矩阵matlab

时间:2013-11-16 21:04:02

标签: arrays matlab matrix

我尝试使用matlab在matlab中找到上下对角矩阵

这是想法

如果我有矩阵4x4

 1  2  3  4 
 5  6  7  8
 9 10 11 12 
13 14 15 16

主对角线是

1 6 11 16

但第二个上对角线是

2 7 12

,下面是

5 10 15

所以有triutril但要写它或使用matlab中的任何其他函数来找到矩阵中的这个上下对角线。

2 个答案:

答案 0 :(得分:2)

只需使用diag,例如

 diag(A,0)   % main diagonal, also diag(A)
 diag(A,-1)  % lower diagonal
 diag(A,1)   % upper ...

答案 1 :(得分:1)

您可以使用简单的线性索引来获取矩阵的任何对角线。您需要知道的是第一个元素的线性索引和矩阵中的行数:

 >> [m n] = size(A);

获取矩阵的主对角线(第一个元素索引为1):

 >> A( 1 : ( m+1 ) : end )

获得较低的对角线(第一个索引为2):

 >> A( 2 : ( m+1 ) : end )

获取上对角线(第一个索引为m+1):

>> A( (m+1) : (m+1) : end )