Python 将值映射到特定范围
假设我们有一些从Python 将值映射到特定范围,python,mapping,Python,Mapping,假设我们有一些从-inf到+inf的角度值作为输入 我只想将它们映射到-180和+180之间 我怎样才能做到这一点 以下是我到目前为止的发现: (i-180)%360-180 它工作得很好,但是它将+180映射到-180,我希望它是+180->+180 从技术上讲,这对我来说是一样的,所以这不是什么大不了的事,但在美学上会更好 我正在使用Python,但它在这里并不重要。如果你不那么重视数学唯美主义,我认为这是可行的 def f(i): x = i % 360 if x >
-inf
到+inf
的角度值作为输入
我只想将它们映射到-180
和+180
之间
我怎样才能做到这一点
以下是我到目前为止的发现:
(i-180)%360-180
它工作得很好,但是它将+180
映射到-180
,我希望它是+180
->+180
从技术上讲,这对我来说是一样的,所以这不是什么大不了的事,但在美学上会更好
我正在使用Python,但它在这里并不重要。如果你不那么重视数学唯美主义,我认为这是可行的
def f(i):
x = i % 360
if x > 180:
x -= 360
elif x == 180 and i < 0:
x = -x
return x
def(i):
x=i%360
如果x>180:
x-=360
elif x==180且i<0:
x=-x
返回x
如果你不那么重视数学唯美主义,我认为这是可行的
def f(i):
x = i % 360
if x > 180:
x -= 360
elif x == 180 and i < 0:
x = -x
return x
def(i):
x=i%360
如果x>180:
x-=360
elif x==180且i<0:
x=-x
返回x
假设列表中的值在-inf
到inf
的范围内sampleList[]
。
您需要将范围-180
到180
的sampleList[]中的值映射。让我们将映射元素的新列表命名为mappedList[]
将x
视为sampleList[]
将y
视为mappedList[]中的元素
将maxSL
视为sampleList[]
的最大值,并且
minSL
至少为sampleList[]
所以,
y = ((x - minSL)(((180-(-180))/(maxSL - minSL))) + (-180)
假设列表中的值在sampleList[]
的范围-inf
到inf
之间。
您需要将范围-180
到180
的sampleList[]中的值映射。让我们将映射元素的新列表命名为mappedList[]
将x
视为sampleList[]
将y
视为mappedList[]中的元素
将maxSL
视为sampleList[]
的最大值,并且
minSL
至少为sampleList[]
所以,
y = ((x - minSL)(((180-(-180))/(maxSL - minSL))) + (-180)
它正在工作,但它发送+180->+180和-180->+180。我真的想要:-180->180和+180->+180。这不是功能吗?如果比例从-180到+180(包括+180),则为361度。还是我的数学错了?我想这是一个特点。我已经编辑了我的答案。180->180,-180->180。它正在工作,但它发送+180->+180和-180->+180。我真的想要:-180->180和+180->+180。这不是功能吗?如果比例从-180到+180(包括+180),则为361度。还是我的数学错了?我想这是一个特点。我已经编辑了我的答案。180 -> 180, -180 -> -180.