请用c语言编写一个代码“min-max 标准化”是数据标准化的常用方法,是对原始数据进行线性变换, 将一个数据的原始值通过变换后映射成在区间[0,1]中的值。其公式为:新数据 =(原数据-最小值)/(最大值-最小值) 试编
时间: 2024-10-05 09:03:26 浏览: 43
```c
#include <stdio.h>
// 函数声明
double min_max_scale(double value, double min_val, double max_val);
int main() {
// 输入一组数据
int data[] = {50, 80, 100, 150, 200};
const int size = sizeof(data) / sizeof(data[0]);
printf("Original Data:\n");
for (int i = 0; i < size; i++) {
printf("%d ", data[i]);
}
// 计算并应用最小-最大标准化
for (int i = 0; i < size; i++) {
double scaled_data = min_max_scale((double)data[i], *min_element(data, data + size), *max_element(data, data + size));
printf("\nNormalized Value: %.2f", scaled_data);
}
return 0;
}
// 实现min-max标准化函数
double min_max_scale(double value, double min_val, double max_val) {
return (value - min_val);
}
```
上述代码是一个简单的C程序,它首先计算给定数组`data`中的最小值和最大值,然后对每个元素应用`min_max_scale`函数进行标准化处理。这个函数接受一个值、最小值和最大值作为输入,返回值在区间[0,1]内的结果。
阅读全文