2016-12-07 3 views
1

У меня есть потоковые данные, так как значения float варьируются от -2 до +4. Мне нужно написать функцию, которая нормализует эти значения между -1 и +1.Нормализовать отрицательное или положительное число символов, которое зависеть от -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, примерно. Что мне нужно настроить в моей функции?

спасибо.

+5

Вы не удивлены, что значения ' -2' и '4' не появляются нигде в вашей формуле? Исходный диапазон важен, не согласны ли вы? –

+0

Это диапазон входных данных, поэтому 'float input' – anti

+0

@Igor вам в действительности не нужны. (Хотя вам нужны значения, полученные из них) – Iluvatar

ответ

5

Вы хотите первый центр диапазона вокруг 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; 
} 
+0

Это похоже на работу. Спасибо! – anti

 Смежные вопросы

  • Нет связанных вопросов^_^