将-1或1之间的负数或正数归一化?

ant*_*nti 1 c++ normalization

我有流数据,浮点值介于-2和+4之间.我需要编写一个函数来将这些值归一化到-1和+1之间.

我有:

float normalize(float input)
{
    int min = -1;
    int max = 1;
    float normalized_x = (input - min) / (max - min);
    return normalized_x;
}
Run Code Online (Sandbox Code Playgroud)

但这给了我不正确的值,范围从-0.4到+2.3,粗略.我的功能需要调整什么?

谢谢.

Ilu*_*tar 7

您希望首先将范围居中于0左右,然后除以使其从-1变为1.

float normalize(float input)
{
    float normalized_x = (input - 1) / 3;
    return normalized_x;
}
Run Code Online (Sandbox Code Playgroud)

更广义:

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;
}
Run Code Online (Sandbox Code Playgroud)