因此,如您所见,我尝试制作一种用于用户输入的方法,该方法采用前两个元素并将其平均,然后用signal[i-1]
,signal[i]
和{ {1}},最后两个数字也是平均值,但是正如您所见,我还有一段距离。
signal[i+1]
答案 0 :(得分:0)
我认为这就是你所追求的。首先取前两个的平均值,然后迭代中间部分,然后取后两个的平均值。像这样:
public static double[] smooth(double[] signal)
{
int[] = result = new int[signal.length - 1];
result[0] = (signal[0] + signal[1]) / 2;
for(int i = 1; i < signal.length - 1; i++)
{
result[i] = (signal[i - 1] + signal[i] + signal[i + 1]) / 3;
}
result[signal.length - 1] = (signal[signal.length - 2] + signal[signal.length - 1]) / 2;
return result;
}