Как я могу сгладить 2D матрицу для N-х ближайших соседей в R? - PullRequest
0 голосов
/ 15 мая 2018

Предположим, у меня есть следующая матрица:

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

Заранее спасибо!

...