在matlab中如何将矩阵对角线上下的数字提取为两个独立的向量

在matlab中如何将矩阵对角线上下的数字提取为两个独立的向量,matlab,matrix,Matlab,Matrix,我对matlab是新手。我有一个大的nxn矩阵,我需要在一个向量中提取对角线上方的数字,和对角线下方的数字一样,但要提取到一个单独的向量中 使用它沿对角线提取矩阵中的数字。默认行为是提取矩阵主对角线上的值(即行数和列数相同),但您可以指定一个附加参数,指定是否要在主对角线上方或下方采样的偏移量 因此,如果您想在对角线上方加一个参数,则应将第二个参数指定为1。在下面,您可以将第二个参数指定为-1 让我们展示一个5 x 5矩阵a的示例,如下所示: A = reshape(1:25, 5, 5) A

我对matlab是新手。我有一个大的nxn矩阵,我需要在一个向量中提取对角线上方的数字,和对角线下方的数字一样,但要提取到一个单独的向量中

使用它沿对角线提取矩阵中的数字。默认行为是提取矩阵主对角线上的值(即行数和列数相同),但您可以指定一个附加参数,指定是否要在主对角线上方或下方采样的偏移量

因此,如果您想在对角线上方加一个参数,则应将第二个参数指定为
1
。在下面,您可以将第二个参数指定为
-1

让我们展示一个5 x 5矩阵
a
的示例,如下所示:

A = reshape(1:25, 5, 5)

A = 

 1     6    11    16    21
 2     7    12    17    22
 3     8    13    18    23
 4     9    14    19    24
 5    10    15    20    25
要使对角线正好位于主对角线上方,请执行以下操作:

vec1 = diag(A,1)
vec2 = diag(A,-1)
我们的产出是:

vec1 =

 6
12
18
24
vec2 =

 2
 8
14
20
类似地,要使对角线位于主对角线的正下方,可以执行以下操作:

vec1 = diag(A,1)
vec2 = diag(A,-1)
我们的产出是:

vec1 =

 6
12
18
24
vec2 =

 2
 8
14
20

我已经做到了。我想得到的是一个有对角线的向量,另一个有所有非对角线的向量。@pj45这不是你的问题。你说过你想要对角线条目在主对角线的上方或下方。您没有指定您想要的条目不在对角线上。您应该更改问题描述,或者一起创建另一个问题。