1

Dependencies:   QEI2 chair_BNO055 PID Watchdog VL53L1X_Filter ros_lib_kinetic

Dependents:   wheelchairControlSumer2019

Statistics/statistics.cpp

Committer:
jvfausto
Date:
2020-06-03
Revision:
30:b24d73663499
Parent:
28:6d6bd8ad04dc

File content as of revision 30:b24d73663499:


#include "statistics.h"
#include "mbed.h"

    /**************************************************************************
     * This function initializes the private members of the class Statistics  *
     **************************************************************************/
    statistics::statistics(int* Input, int dataLengthIn, int firstDataPointIn){
        data = Input;
        dataLength = dataLengthIn;
        firstDataPoint = firstDataPointIn;
        }
        
    /**************************************************************************
     * This function returns the mean(average) of an array.                   *
     **************************************************************************/
    double statistics::mean(){
        double sum;
        for(int i = firstDataPoint; i < (firstDataPoint + dataLength); ++i)
        {
            sum += data[i];
        }
    
        double average = sum/dataLength;
        return average;
    }
    
    /**************************************************************************
     * This function returns the standard deviation of an array. This is      *
     * used to determine whether the data is valid or not.                    *
     **************************************************************************/
    double statistics::stdev(){
        double sum = 0.0, mean, standardDeviation = 0.0;
        printf("The length of the array is %d\n", dataLength);
        //double num = (pow(2.0,2.0));
        //printf("2^2 is %f\n", num);
        //int i;

        for(int i = firstDataPoint; i < (firstDataPoint + dataLength); ++i)
        {
            sum += data[i];
            printf("%d\n", data[i]);
        }
    
        mean = sum/dataLength;
    
        for(int i = firstDataPoint; i < (firstDataPoint + dataLength); ++i) {
            //standardDeviation += pow(data[i] - mean, 2);
            standardDeviation += (data[i] - mean)*(data[i] - mean);
            }
    
        return sqrt(standardDeviation / dataLength);
    }