0、概念:歸一化:
??? 1)把數(shù)據(jù)變成(0,1)或者(1,100)之間的小數(shù)砌滞。主要是為了數(shù)據(jù)處理方便提出來的侮邀,把數(shù)據(jù)映射到0~1范圍之內(nèi)處理,更加便捷快速布持。
??? 2)把有量綱表達式變成無量綱表達式豌拙,便于不同單位或量級的指標(biāo)能夠進行比較和加權(quán)。歸一化是一種簡化計算的方式题暖,即將有量綱的表達式按傅,經(jīng)過變換捉超,化為無量綱的表達式,成為純量唯绍。
1拼岳、問題:從某硬件讀取數(shù)據(jù),值范圍是 -32767 - 32768况芒,但我需要的是0~1之間惜纸。
???? 1)先創(chuàng)建三個搖桿,值范圍設(shè)置成 0 ~ 1绝骚,只是為了數(shù)據(jù)能看的更直觀耐版,不做其他用途。
???? 2)創(chuàng)建三個變量
????? 3)在Update中賦值压汪,值來源于硬件粪牲,他的范圍是 -32767 ~ 32768
????? 4)運行后,可以在面板中看到定義的三個公共變量止剖,這是原始數(shù)據(jù)腺阳。
看得出來,硬件是汽車的踏板穿香,分別為離合剎車和油門亭引,我們暫且不管滑桿和下面的數(shù)值,只觀察我們定義的變量皮获,這組數(shù)據(jù)確實是 -32767 - 32768
????? 5)現(xiàn)在創(chuàng)建3個滑桿焙蚓,值設(shè)置為 最小0,最大1 默認(rèn)0魔市,如下圖所示
????? 6)我們在腳本中主届,引入UI的命名空間,然后創(chuàng)建三個滑桿
????? 7)將腳本掛在攝像機或其他活動物體上面
????? 8)將三個滑桿賦值給腳本待德,上列7個變量中君丁,Input 為硬件的原始值,下面的三個是歸一化后的值将宪,而且也是滑桿的value
????? 9)關(guān)于歸一化绘闷,有一個公式,范圍是0-1:
?????????? (1)Min-Max Normalization?????????????? value? =? ( originalValue - X_min) / (X_max - X_min)
?????????????? 我們直接套用
?????????????????? gas(滑桿的Value) = (gasInput(硬件的原始值) +32767) / (32767 +32768);
??????????????? brake(滑桿的Value) = (brakeInput(硬件的原始值) +32767) / (32767 +32768);
?????????????? clutch(滑桿的Value) = (clutchInput(硬件的原始值) +32767) / (32767 +32768);
?????????????????? 看起來和公式不太一樣较坛,那是因為我簡化了寫法
?????????????????? 原來的寫法:值 =( 硬件原始值? -? 最小值 ) ? /? (最大值 - 最小值)
?????????????????? 我們的最小值是-32767印蔗,最大值是32768,減去負數(shù) 那就是加正的(負負得正)丑勤,所以就直接 +
????? 10)現(xiàn)在將計算出的value华嘹,賦值給滑桿,下面是完整代碼法竞,有了公式耙厚,思路就變得簡單了
2强挫、問題比較簡單,在此記錄一下薛躬,我也曾嘗試過 Mathf.Clamp俯渤,但是我只能得到 最大數(shù)和最小數(shù),并不能取中間型宝。
3八匠、不論是什么硬件,都會有數(shù)值傳遞趴酣,梨树,那么如果數(shù)值不規(guī)律或者不是我們想要的,數(shù)據(jù)標(biāo)準(zhǔn)化或者歸一化都是很有必要的价卤。