Qt篇——求QVector的平均值、最大值、最小值、标准差(均方差)

//平均值
double getAverage(QVector<double> data) {
    return std::accumulate(data.begin(), data.end(), 0.0) / data.size();
}

//最大值
double getMax(QVector<double> data) {
    return *std::max_element(std::begin(data), std::end(data));
}

//最小值
double getMin(QVector<double> data) {
    return *std::min_element(std::begin(data), std::end(data));
}

//标准差, 也称均方差, 是方差的算术平方根
double getStd(QVector<double> data) {
    double mean = getAverage(data);
    double accum = 0.0;
    std::for_each (std::begin(data), std::end(data), [&](const double d) {
        accum += (d-mean) * (d-mean);
    });
    return sqrt(accum / data.size()); //除以n-1是无偏估计方差, 除以n是概率分布方差, 都行
}

猜你喜欢

转载自blog.csdn.net/u011391361/article/details/134848851
今日推荐