我有点数,我需要将平均滤波器(如下所述(转换为中位数滤波器以平滑图。任何人都可以指导我吗?
# Mean Filter
smoothfilter <- function(feat, ntap)
{
ofeat <- feat # Actual data
nfeat <- length(feat) # Length of a actual data
nhtap <- floor(ntap / 2.0)
sf <- feat[1:(nfeat-ntap+1)]
for (j in 2:ntap) {
sf <- sf + feat[j:(nfeat-ntap+j)]
}
sf <- sf / ntap
ofeat[(nhtap+1):(nfeat-nhtap)] <- sf
ofeat
}
这是平均滤波器和中值滤波器的两个函数:
mav <- function(x,n=5){filter(x,rep(1/n,n), sides=2)} #Average
mmed <- function(x,n=5){runmed(x,n)} #Median