2009-09-21 99 views
3

例如我有兩個範圍重新縮放範圍

     (1) 0 to 3 
         (2) 10 to 15 

在範圍(1)我有0和3,其中0是最小和3之間的數字是最大值...(它也值1和2)...

現在我想重新調整範圍(1)和(2)的範圍爲0到1.你能告訴我怎麼做或至少指向有用的網站嗎?非常感謝!

+0

」現在我想重新調整範圍(1)和(2)的範圍0到1「 - 不清楚。你想要什麼輸出? – 2009-09-21 18:23:27

+0

@Riki,你的問題不清楚。 – Mahesh 2009-09-21 19:21:16

回答

17

你所描述的內容叫做linear interpolation

對於一般的情況下,假設有ab之間的值c,並且希望這是基於ab之間c的相對位置0和1之間的值x。對於x的公式如下:

x := (c - a)/(b - a) 

所以,如果你有10和15之間的值(比方說11),並且希望在0和1之間的值,你一拳值代入上面的方程:

x := (11 - 10)/(15 - 10) 
x := 1/5 

換句話說,圖11是從10方式的五分之一至15


的更一般的情況下(當你有之間的值和b,你想一個價值yz之間x),x的計算方法如下:

x := (c - a) * (z - y)/(b - a) + y 

在你的情況,z = 1y = 0。 「