C++实现MATLAB中mapminmax函数
时间: 2024-05-07 16:21:43 浏览: 145
MATLAB中的mapminmax函数用于将数据归一化到指定的区间内。C++中可以通过以下方式实现该函数:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<double> mapminmax(vector<double>& data, double min_val, double max_val) {
double data_min = *min_element(data.begin(), data.end());
double data_max = *max_element(data.begin(), data.end());
vector<double> norm_data(data.size());
for (int i = 0; i < data.size(); i++) {
norm_data[i] = (data[i] - data_min) / (data_max - data_min) * (max_val - min_val) + min_val;
}
return norm_data;
}
int main() {
vector<double> data = {1, 2, 3, 4, 5};
double min_val = 0, max_val = 1;
vector<double> norm_data = mapminmax(data, min_val, max_val);
for (int i = 0; i < norm_data.size(); i++) {
cout << norm_data[i] << " ";
}
cout << endl;
return 0;
}
```
该函数使用了STL库中的min_element和max_element函数来查找数据的最小值和最大值,然后对每个数据进行归一化处理,并返回归一化后的结果。在主函数中,我们可以根据需要设置归一化后的区间。
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)