Вывод среднего элемента матрицы в R
Я действительно застрял в этой проблеме: Пожалуйста, помогите. Создайте код, который принимает матрицу в качестве входных данных и выводит средний элемент матрицы. (подсказка: подумайте о функциях пола и потолка)
1 ответ
Ты можешь использовать %/%
- целочисленное деление и %% 2
- Операция по модулю 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)
Выход для тестовой матрицы (4х4):
> 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