线性五点平滑 c++
时间: 2023-12-22 12:28:11 浏览: 19
以下是C++中的线性五点平滑算法的实现:
```c++
#include <iostream>
#include <vector>
using namespace std;
vector<double> linearSmooth(vector<double> data, int window_size) {
vector<double> smoothed_data;
int half_window = (window_size - 1) / 2;
for (int i = 0; i < data.size(); i++) {
if (i < half_window || i >= data.size() - half_window) {
smoothed_data.push_back(data[i]);
} else {
double sum = 0;
for (int j = i - half_window; j <= i + half_window; j++) {
sum += data[j];
}
smoothed_data.push_back(sum / window_size);
}
}
return smoothed_data;
}
int main() {
vector<double> data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int window_size = 5;
vector<double> smoothed_data = linearSmooth(data, window_size);
for (int i = 0; i < smoothed_data.size(); i++) {
cout << smoothed_data[i] << " ";
}
cout << endl;
return 0;
}
```