Go back to Richel Bilderbeek's homepage.

Go back to Richel Bilderbeek's C++ page.

 

 

 

 

 

(C++) MeanAndStdDev

 

Math code snippet to get the mean and standard deviation of a std::vector.

 

*        View the code of 'MeanAndStdDev' in plain text.

 

 

 

#include <cassert>

#include <cmath>

#include <vector>

 

//From http://www.richelbilderbeek.nl/CppMeanAndStdDev.htm

void MeanAndStdDev(

const std::vector<double>& myVector,

double& mean,

double& stdDev)

{

const int size = static_cast<int>(myVector.size());

assert(size>1);

const double dSize = static_cast<double>(size);

mean = 0.0;

double sumX = 0.0;

double sumXsquared = 0.0;

for (int i=0; i!=size; ++i)

{

const double value = myVector[i];

sumX+=value;

sumXsquared+=(value*value);

mean+=value;

}

 

mean/=dSize;

stdDev = std::sqrt(((dSize*sumXsquared)-(sumX*sumX))/(dSize *(dSize-1.0)));

}

 

 

 

 

 

 

Go back to Richel Bilderbeek's C++ page.

Go back to Richel Bilderbeek's homepage.