R语言中如何提取矩阵的左上三角与右下三角
时间: 2024-05-10 16:21:32 浏览: 117
假设有一个4x4的矩阵M:
```
M <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4, ncol=4)
```
要提取左上三角,可以使用下面的代码:
```
M_upper <- upper.tri(M)
M_upper
```
结果为:
```
[,1] [,2] [,3] [,4]
[1,] TRUE TRUE TRUE TRUE
[2,] FALSE TRUE TRUE TRUE
[3,] FALSE FALSE TRUE TRUE
[4,] FALSE FALSE FALSE TRUE
```
可以看到,返回的是一个逻辑矩阵,其中左上三角的元素为TRUE,其他元素为FALSE。如果要提取左上三角的值,可以使用下面的代码:
```
M[M_upper]
```
结果为:
```
[1] 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
```
要提取右下三角,可以使用下面的代码:
```
M_lower <- lower.tri(M)
M_lower
```
结果为:
```
[,1] [,2] [,3] [,4]
[1,] FALSE FALSE FALSE FALSE
[2,] TRUE FALSE FALSE FALSE
[3,] TRUE TRUE FALSE FALSE
[4,] TRUE TRUE TRUE FALSE
```
同样返回一个逻辑矩阵,其中右下三角的元素为TRUE,其他元素为FALSE。如果要提取右下三角的值,可以使用下面的代码:
```
M[M_lower]
```
结果为:
```
[1] 1 2 3 4 6 7 8 11 12 16
```
阅读全文