Math 带负数的值的缩放范围

Math 带负数的值的缩放范围,math,scale,Math,Scale,如果一组值包含负数,如何缩放它们以适应新的范围 例如,我有一组数字(-10,-9,1,4,10),它们必须缩放到范围[01],这样-10映射到0,10映射到1 任意数字“x”的常规方法为: (x-从最小值)*(到最大值-到最小值)/(从最大值-从最小值)+到最小值 但这不适用于负数。感谢您的帮助。谢谢 您的公式适用于负数 你有: from_min=-10 从_max=10 to_min=0 至_max=1 将这些替换到您的公式中: (x - (-10)) * (1 - 0) / (10 -

如果一组值包含负数,如何缩放它们以适应新的范围

例如,我有一组数字(-10,-9,1,4,10),它们必须缩放到范围[01],这样-10映射到0,10映射到1

任意数字“x”的常规方法为: (x-从最小值)*(到最大值-到最小值)/(从最大值-从最小值)+到最小值


但这不适用于负数。感谢您的帮助。谢谢

您的公式适用于负数

你有:

  • from_min=-10
  • 从_max=10
  • to_min=0
  • 至_max=1
将这些替换到您的公式中:

(x - (-10)) * (1 - 0) / (10 - (-10)) + 0
这简化为:

(x + 10) / 20

我相信我会的;以你为例,

from_min = -10,
from_max = 10,
to_max = 1,
to_min = 0.
这就产生了

to_max - to_min = 1,
from_max - from_min = 20;
所以用这个公式

x -> (x - from_min) * (to_max - to_min) / (from_max - from_min) + to_min
   = (x - from_min) * 1 / 20 + 0
   = (x - from_min) / 20
屈服

-10 -> (-10 + 10) / 20 = 0 / 20,
-9 -> (-9 + 10) / 20 = 1 / 20,
1 -> (1 + 10) / 20 = 11 / 20,
4 -> (4 + 10) / 20 = 14 / 20,
10 -> (10 + 10) / 20 = 20 / 20,

所以所有的结果值都是非负的。此外,原始最小值-10映射到_min=0,原始最大值10映射到_max=1。如果这在您的实现中不起作用,请检查您是否混淆了整数类型和浮点类型。

奇怪。。。。。我想我把实现搞砸了。我会再检查一遍。谢谢谢谢我相信我在实现中对数据类型犯了一个错误。我会解决的,谢谢!谢谢,但是如果你想要比例[0,1],那么你就不需要_min和to_max=>minmax比例公式了?