在R中提取矩阵的子对角线和超对角线

ego*_*go_ 8 r extract matrix diagonal

正如标题所暗示的,如何提取矩阵的子对角线和超对角线?

Jam*_*mes 11

diag.对于superdiagonal,您只需丢弃最后一行和第一列.对于subdiagonal,丢弃第一行,最后一列:

m <- matrix(1:9,nrow=3)

> m
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> diag(m)
[1] 1 5 9
> diag(m[-nrow(m),-1])
[1] 4 8
> diag(m[-1,-ncol(m)])
[1] 2 6
Run Code Online (Sandbox Code Playgroud)