在Matlab中,我知道有一些函数可以翻转矩阵,比如左右翻转(水平(或上下翻转(垂直(,但我不知道R.中是否有类似的函数
例如,假设我们有一个矩阵m <- matrix(1:12,nrow = 3)
,我们想要
- 水平翻转获得
mh
[,1] [,2] [,3] [,4]
[1,] 10 7 4 1
[2,] 11 8 5 2
[3,] 12 9 6 3
- 垂直翻转以获得
mv
[,1] [,2] [,3] [,4]
[1,] 3 6 9 12
[2,] 2 5 8 11
[3,] 1 4 7 10
我认为pracma
包可以帮助您
mh <- pracma::fliplr(m)
和
mv <- pracma::flipud(m)
使得
> mh
[,1] [,2] [,3] [,4]
[1,] 10 7 4 1
[2,] 11 8 5 2
[3,] 12 9 6 3
> mv
[,1] [,2] [,3] [,4]
[1,] 3 6 9 12
[2,] 2 5 8 11
[3,] 1 4 7 10
我们可以将序列反转为列、行的索引,以获得翻转的数据集
m[, ncol(m):1]
# [,1] [,2] [,3] [,4]
#[1,] 10 7 4 1
#[2,] 11 8 5 2
#[3,] 12 9 6 3
m[nrow(m):1, ]
# [,1] [,2] [,3] [,4]
#[1,] 3 6 9 12
#[2,] 2 5 8 11
#[3,] 1 4 7 10