c++中vector计算标准差
时间: 2023-11-14 18:10:16 浏览: 259
标准差计算
5星 · 资源好评率100%
在C++中,可以使用vector和algorithm库中的accumulate和for_each函数来计算标准差。具体步骤如下:
1. 定义一个vector来存储数据。
2. 使用accumulate函数计算vector中所有元素的和。
3. 计算vector的均值,即将vector中所有元素的和除以vector的大小。
4. 使用for_each函数计算方差,即对于vector中的每个元素,将其与均值的差的平方累加起来。
5. 将方差除以vector的大小减1,再取其平方根,即可得到标准差。
下面是一个示例代码:
```
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
void calstdev(vector<float> A, float &mean, float&stdev) {
float sum = accumulate(A.begin(), A.end(), 0.0);
mean = sum / A.size(); //均值
float accum = 0.0;
for_each(A.begin(), A.end(), [&](const float d) {
accum += (d - mean)*(d - mean);
});
stdev = sqrt(accum / (A.size() - 1)); //标准差
}
int main() {
vector<float> data{ 1.2, 2.3, 3.4, 4.5, 5.6 };
float mean, stdev;
calstdev(data, mean, stdev);
cout << "Mean: " << mean << endl;
cout << "Standard deviation: " << stdev << endl;
return 0;
}
```
阅读全文