mapmimax的学习

最近学习matlab神经网络相关知识的时候,对mapminmax归一化函数的理解有些不够,百度了一下,感觉彻底理解了,
现记录下来,防止以后忘掉,参考的地址为https://jingyan.baidu.com/article/48b37f8d649ce31a646488e9.html
1:mapminmax函数是对 行数据   进行 归一化
2:mapminmax函数的的形式:
[Y,PS] = mapminmax(X,YMIN,YMAX) Y是X归一化后的数据,YMIN,YMAX的通常是[0,-1],或者默认[-1,1],
PS是归一化后的结构体,里面含有最大值,最小值等信息,用来下面的步骤。
Y = mapminmax('apply',X,PS) 依据PS的信息,对X进行归一化, Y是依据PS归一化后的数据
X = mapminmax('reverse',Y,PS) 依据PS的信息,对Y进行反归一化,X是依据PS反归一化后的数据

3:mapminmax的算法是y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;

举一个例子吧:就是参考中的例子:
1.
A=[100,200,300,400,500]
[B,ps]=mapminmax(A)
--->
B =

-1.0000 -0.5000 0 0.5000 1.0000
ps =

name: 'mapminmax'
xrows: 1
xmax: 500
xmin: 100
xrange: 400
yrows: 1
ymax: 1
ymin: -1
yrange: 2

2.
下面利用ps的信息对其他的数进行归一化
这个数必须要在xmin 和xmax之间。
不然归一化的结果,与整体进行归一化,结果会不一样

temp=mapminmax('apply',250,ps)
temp =

-0.2500

这个结果和整体归一化的结果一致:
A=[100,200,300,400,500,250]
pro =

-1.0000 -0.5000 0 0.5000 1.0000 -0.2500


3.
反归一化:
A=[100,200,300,400,500]
[B,ps]=mapminmax(A)

temp=mapminmax('reverse',B,ps)
temp =

100 200 300 400 500


temp=mapminmax('reverse',-0.25,ps)
temp =

250

原文地址:https://www.cnblogs.com/Airboy1/p/9642387.html