calculate Moving Average for double array - Android java.lang

Android examples for java.lang:array calculation

Description

calculate Moving Average for double array

Demo Code

/*/*  ww w . ja v a 2 s  .  co m*/
 * Copyright 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
public class Main {
  public static double[] calculateMovingAverage(double[] array, int n) {
    int num = array.length;
    if (num < n) {
      return null;
    }
    int avgsNum = num - n + 1;
    double[] avgs = new double[avgsNum];
    double sum = array[0];
    for (int i = 1; i < n; ++i) {
      sum += array[i];
    }
    avgs[0] = sum / n;

    for (int i = n; i < num; ++i) {
      sum = sum - array[i - n] + array[i];
      avgs[i - n + 1] = sum / n;
    }
    return avgs;
  }
}

Related Tutorials