在R中输出矩阵的中间元素

问题描述 投票:-2回答:1

我真的坚持这个问题:请帮助。创建一个以矩阵作为输入并输出矩阵的中间元素的代码。 (提示:考虑地板和天花板功能)

r matrix output floor ceiling
1个回答
0
投票

您可以使用%/% - 整数除法和%% 2 - modulo 2操作来根据列数和行数(奇数或偶数)提取中心元素。请看下面:

middle <- function(m) {
  nr <- nrow(m)
  nc <- ncol(m)
  if (nr %% 2 == 0) {
    ns <- c(nr %/% 2, nr %/% 2 + 1) 
  } else {
    ns <- nr %/% 2 + 1
  }

  if (nc %% 2 == 0) {
    ms <- c(nc %/% 2, nc %/% 2 + 1)
  } else {
    ms <- nc %/% 2 + 1
  }
  m[ns, ms]
}


m <- matrix(1:16, nrow = 4)
m
middle(m)

测试矩阵的输出(4x4):

> m
     [,1] [,2] [,3] [,4]
[1,]    1    5    9   13
[2,]    2    6   10   14
[3,]    3    7   11   15
[4,]    4    8   12   16
> middle(m)
     [,1] [,2]
[1,]    6   10
[2,]    7   11
© www.soinside.com 2019 - 2024. All rights reserved.