Math 如何编写参数映射方程
我想知道写映射方程数学上正确的方法是什么。我有一个滑块范围(0100),它映射到另一个值范围(v_min,v_max)。是否有任何标准的书写方式,而不是: v=滑块值*(v_最大值-v_最小值)/(100-0) 问题在于是否有一种标准的数学方法来将(a,b)映射到(c,d)。它用于纸质文档,而不是编码本身Math 如何编写参数映射方程,math,Math,我想知道写映射方程数学上正确的方法是什么。我有一个滑块范围(0100),它映射到另一个值范围(v_min,v_max)。是否有任何标准的书写方式,而不是: v=滑块值*(v_最大值-v_最小值)/(100-0) 问题在于是否有一种标准的数学方法来将(a,b)映射到(c,d)。它用于纸质文档,而不是编码本身 谢谢您必须添加v_min才能得到正确的结果 更一般的线性映射公式是 v = v_min + (slider_value - slider_min) * (v_max - v_min) / (s
谢谢您必须添加
v_min
才能得到正确的结果
更一般的线性映射公式是
v = v_min + (slider_value - slider_min) * (v_max - v_min) / (slider_max - slider_min)
请注意,Cf=(v_max-v_min)/(slider_max-slider_min)
是给定映射的已知常量,因此可以进行小优化,以避免在每个步骤进行过多计算:
v = v_min + (slider_value - slider_min) * Cf
您可以使用
插值
Interpolation[{{slidermin,vmin},{slidermax,vmax}}]@sliderval
(您可能需要插值顺序->1
来超越警告)
基本上,这只是构建另一个答案中给出的表达式,但如果超出范围,则会发出警告。我认为您正在寻找的函数是
重新缩放
,因为这正符合您的要求:
v = Rescale[slider_value, {0, 100}, {v_min, v_max}]
例如:
DynamicModule[{x = 0},
Column[{
Dynamic[x],
Dynamic[Rescale[x, {0, 100}, {-200, 300}]],
Slider[Dynamic[x], {0, 100}]
}]
]
嗨,我问的不是映射方法,如果不清楚,很抱歉。它是关于记录的。如何在论文中写出方程式?是否有一个标准的方法来记录如何将(a,b)映射到(c,d)。嗨,我问的不是映射方法,如果不清楚的话,很抱歉。它是关于记录的。如何在论文中写出方程式?是否有一种标准的方法来记录如何将(a,b)映射到(c,d)。那么为什么要使用mathematica标记呢?如果不是编码问题,那么您的站点就错了。也许可以试试math.stackexchange.com,不过也许复习你所在领域的一些期刊会更有成效。我投票将这个问题作为离题题来结束,因为它与编程和编码无关。