mapminmax
语法
[Y,PS] = mapminmax(YMIN,YMAX)
[Y,PS] = mapminmax(X,FP)
Y = mapminmax('apply',X,PS)
X = mapminmax('reverse',Y,PS)
dx_dy = mapminmax('dx',X,Y,PS)
dx_dy = mapminmax('dx',X,[],PS)
name = mapminmax('name');
fp = mapminmax('pdefaults');
names = mapminmax('pnames');
remconst('pcheck',FP);
描述
mapminmax将矩阵中每一行规范化到[YMIN,YMAX]范围内。
mapminmax(X,YMIN,YMAX)中参数YMIN,YMAX是可选的。 Matlab中文论坛
X为N*Q的矩阵或者每一元素为1*TS细胞元组的N*Q的矩阵。
YMIN Y中每个行的最小值(默认为-1)
YMAX Y中每个行的最大值(默认为1) book.iLoveMatlab.cn
返回值:
Y M*Q的矩阵(M=Q)
PS 处理过程的设置,实现对数据的一致处理
mapminmax(X,FP) 参数为一个结构:FP.ymin, FP.ymax
mapminmax('apply',X,PS) 对X根据PS中的配置做同样的规范化,返回Y
mapminmax('reverse',Y,PS) 根据规范化后的Y及PS中的配置反归一化,返回X
mapminmax('dx',X,Y,PS) returns the M x N x Q derivative of Y with respect to X.
mapminmax('dx',X,[],PS) returns the derivative, less efficiently.
mapminmax('name') 返回处理方法的名字
mapminmax('pdefaults') 返回默认的处理参数的结构
mapminmax('pdesc')返回处理参数的描述
mapminmax('pcheck',FP) 如果任意一个参数非法返回错误信息
举例
下面是如何规范化一个矩阵的过程,这个规范化将每一行的最小值与最大值映射到区间[-1,1]
x1 = [1 2 4; 1 1 1; 3 2 2; 0 0 0]
[y1,PS] = mapminmax(x1)
下一步,对新的值应用同样的处理方法 book.iLoveMatlab.cn
x2 = [5 2 3; 1 1 1; 6 7 3; 0 0 0]
y2 = mapminmax('apply',x2,PS)
将y1反归一化回x1
x1_again = mapminmax('reverse',y1,PS)
算法
mapminmax假设x的值为实数,并且每一行的元素值不相等
y = (ymax - ymin)*(x - xmin)/(xmax - xmin) + ymin;