Я должен нормализовать список значений в диапазоне [-1; 1].
Я нашел этот код в C #, но я не знаю этот язык. Кто-то может помочь мне перевести это на с ++?
List<int> list = new List<int>{-5,-4,-3,-2,-1,0,1,2,3,4,5};
double scaleMin = -1; //the normalized minimum desired
double scaleMax = 1; //the normalized maximum desired
double valueMax = list.Max();
double valueMin = list.Min();
double valueRange = valueMax - valueMin;
double scaleRange = scaleMax - scaleMin;
IEnumerable<double> normalized =
list.Select (i =>
((scaleRange * (i - valueMin))
/ valueRange)
+ scaleMin);
Код…
IEnumerable<double> normalized = list.Select (i => ((scaleRange * (i - valueMin)) / valueRange) + scaleMin);
… может быть переписан (в C #) без лямбда-выражений, как так …
IEnumerable<double> normalized = new List<double>();
for (var elem in list)
{
normalized.Add(((scaleRange * (elem - valueMin)) / valueRange) + scaleMin);
}
Вы должны быть в состоянии перевести этот алгоритм на любой язык, который вам нужен.
Других решений пока нет …