//计算标准差
float cal_stdev(vector<float> nums) {
float sum = accumulate(nums.begin(), nums.end(), 0.0);
float temp = 0.0;
float mean = sum / nums.size();
for (auto num : nums) {
temp += (num - mean) * (num - mean);
}
return sqrt(temp / (nums.size() - 1));
}
//计算均值和方差
void cal_mean_stdev(vector<float> A, float& mean, float& stdev)
{
float sum = std::accumulate(std::begin(A), std::end(A), 0.0);
mean = sum / A.size(); //均值
float accum = 0.0;
std::for_each(std::begin(A), std::end(A), [&](const float d) {
accum += (d - mean) * (d - mean);
});
stdev = sqrt(accum / (A.size() - 1)); //方差
}
计算标准差,均值和方差的函数
最新推荐文章于 2024-07-07 03:27:59 发布