在matlab中如何将矩阵对角线上下的数字提取为两个独立的向量
我对matlab是新手。我有一个大的nxn矩阵,我需要在一个向量中提取对角线上方的数字,和对角线下方的数字一样,但要提取到一个单独的向量中 使用它沿对角线提取矩阵中的数字。默认行为是提取矩阵主对角线上的值(即行数和列数相同),但您可以指定一个附加参数,指定是否要在主对角线上方或下方采样的偏移量 因此,如果您想在对角线上方加一个参数,则应将第二个参数指定为在matlab中如何将矩阵对角线上下的数字提取为两个独立的向量,matlab,matrix,Matlab,Matrix,我对matlab是新手。我有一个大的nxn矩阵,我需要在一个向量中提取对角线上方的数字,和对角线下方的数字一样,但要提取到一个单独的向量中 使用它沿对角线提取矩阵中的数字。默认行为是提取矩阵主对角线上的值(即行数和列数相同),但您可以指定一个附加参数,指定是否要在主对角线上方或下方采样的偏移量 因此,如果您想在对角线上方加一个参数,则应将第二个参数指定为1。在下面,您可以将第二个参数指定为-1 让我们展示一个5 x 5矩阵a的示例,如下所示: A = reshape(1:25, 5, 5) A
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这不是你的问题。你说过你想要对角线条目在主对角线的上方或下方。您没有指定您想要的条目不在对角线上。您应该更改问题描述,或者一起创建另一个问题。