Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将值映射到特定范围_Python_Mapping - Fatal编程技术网

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.