我有流数据,因为浮点值介于-2和+4之间。我需要编写一个函数来将这些值归一化到-1和+1之间。
我有:
float normalize(float input)
{
int min = -1;
int max = 1;
float normalized_x = (input - min) / (max - min);
return normalized_x;
}
但这给了我不正确的值,范围从-0.4到+2.3,粗略。我的功能需要调整什么?
谢谢。
答案 0 :(得分:6)
你想首先将范围居中于0左右,然后除以使其从-1变为1。
float normalize(float input)
{
float normalized_x = (input - 1) / 3;
return normalized_x;
}
更广义:
const float min = -2;
const float max = 4;
float normalize(float input)
{
float average = (min + max) / 2;
float range = (max - min) / 2;
float normalized_x = (input - average) / range;
return normalized_x;
}