有没有简单的方法可以翻转矩阵(水平或垂直)?

时间:2020-09-13 21:02:01

标签: r matrix

在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

2 个答案:

答案 0 :(得分:3)

我认为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

答案 1 :(得分:3)

我们可以将序列反转为列,行的索引以获取翻转的数据集

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