我真的坚持这个问题:请帮助。创建一个以矩阵作为输入并输出矩阵的中间元素的代码。 (提示:考虑地板和天花板功能)
您可以使用%/%
- 整数除法和%% 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