假设我有以下矩阵:
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
提前致谢!