Matlab归一化函数(mapminmax)
功能:將矩陣的每一行處理成[-1,1]區間。處理需要歸一化的m*n矩陣X,歸一化后的矩陣記為Y。
主要有5種調用形式
1.[Y,PS] = mapminmax(X,YMIN,YMAX)
其中,YMIN是我們期望歸一化后矩陣Y每行的最小值,YMAX是我們期望歸一化后矩陣Y每行的最大值。
例1:待處理矩陣X=[4 5 6;7 8 9]我們期望歸一化后每行的最小值為0,最大值為1.程序如下
X=[4 5 6;7 8 9];mapminmax(X,0,1)運行結果:
ans =
?
??????? ?0??? 0.5000??? 1.0000
???????? 0??? 0.5000??? 1.0000
2.[Y,PS] = mapminmax(X,FP)
FP是一個結構體成員,主要是FP.ymin(相當于YMIN), FP.ymax(相當于YMAX)。1和2處理效果一樣,只不過參數的帶入形式不同。
例2:
X=[4 5 6;7 8 9];FP.ymin = 0;FP.ymax = 1;mapminmax(X,FP)運行結果:
ans =
?
???????? 0??? 0.5000??? 1.0000
???????? 0??? 0.5000??? 1.0000
3.Y = mapminmax('apply',X,PS)
PS是訓練樣本的映射,測試樣本的預處理方式應與訓練樣本相同。只需將映射PS apply到測試樣本。
例3.訓練樣本是X,測試樣本是M,歸一化后的訓練樣本是Y
X=[4 5 6;7 8 9];M = [2 3;4 5];[Y,PS] = mapminmax(X,0,1);mapminmax('apply',M,PS)運行結果:
ans =
?
?? -1.0000?? -0.5000
?? -1.5000?? -1.0000
4.X = mapminmax('reverse',Y,PS)
將歸一化后的Y反轉為歸一化之前
例4.將n(M的歸一化)反轉為M
X=[4 5 6;7 8 9];M = [2 3;4 5];[Y,PS] = mapminmax(X,0,1);n = mapminmax('apply',M,PS);mapminmax('reverse',n,PS)運行結果:
ans =
?
???? 2???? 3
???? 4???? 5
5.dx_dy = mapminmax('dx_dy',X,Y,PS)
根據給定的矩陣X、標準化矩陣Y及映射PS,獲取逆向導數(reverse derivative)。如果給定的X和Y是m行n列的矩陣,那么其結果dx_dy是一個1×n結構體數組,其每個元素又是一個m×n的對角矩陣。這種用法不常用,這里不再舉例。
mapminmax的數學公式為y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin。如果某行的數據全部相同,此時xmax=xmin,除數為0,則此時數據不變。
參考文獻
總結
以上是生活随笔為你收集整理的Matlab归一化函数(mapminmax)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 补码原理一个字节存储数值的范围如何计算
- 下一篇: Matlab repmat函数