gpt4 book ai didi

python - 将一系列值映射到另一个值

转载 作者:IT老高 更新时间:2023-10-28 20:26:28 25 4
gpt4 key购买 nike

我正在寻找有关如何在 Python 中将一个范围值转换为另一个范围值的想法。我正在从事硬件项目,并且正在从可以返回一系列值的传感器读取数据,然后我使用该数据来驱动需要不同值范围的执行器。

例如,假设传感器返回 1 到 512 范围内的值,而执行器由 5 到 10 范围内的值驱动。我想要一个可以传递一个值和两个范围并得到的函数返回映射到第二个范围的值。如果这样的函数被命名为 translate 它可以像这样使用:

sensor_value = 256
actuator_value = translate(sensor_value, 1, 512, 5, 10)

在本例中,我希望输出 actuator_value7.5,因为 sensor_value 位于可能输入范围的中间。

最佳答案

一种解决方案是:

def translate(value, leftMin, leftMax, rightMin, rightMax):
# Figure out how 'wide' each range is
leftSpan = leftMax - leftMin
rightSpan = rightMax - rightMin

# Convert the left range into a 0-1 range (float)
valueScaled = float(value - leftMin) / float(leftSpan)

# Convert the 0-1 range into a value in the right range.
return rightMin + (valueScaled * rightSpan)

您可能会使用代数来提高效率,但会牺牲可读性。

关于python - 将一系列值映射到另一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1969240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com