Предположим, у меня есть следующая матрица:
M=matrix(data = c(0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1),ncol = 4,nrow = 4,byrow = T)
Что такое:
[,1] [,2] [,3] [,4]
[1,] 0 0 1 1
[2,] 0 0 1 1
[3,] 0 0 1 1
[4,] 0 0 1 1
Я хочу сгладить эту матрицу до ближайших соседей (затем до N-х ближайших соседей, если это возможно), сохраняя при этом размер исходной матрицы, например, усреднение окна, но в 2D. К моему удивлению, я еще не нашел функцию R, которая выполняет эти вычисления.
Например, если я хочу присвоить это только первым соседям, и для простоты, используя те же веса для каждого усредненного значения, результат будет:
M_smoothed=matrix(data = c(0,2/6,4/6,4/4,0,3/9,6/9,6/6,0,3/9,6/9,6/6,0,2/6,4/6,4/4),ncol = 4,nrow = 4,byrow = T)
Что такое:
[,1] [,2] [,3] [,4]
[1,] 0 0.3333333 0.6666667 1
[2,] 0 0.3333333 0.6666667 1
[3,] 0 0.3333333 0.6666667 1
[4,] 0 0.3333333 0.6666667 1
Заранее спасибо!