首页 > 编程知识 正文

matlab反归一化函数,matlab归一化公式

时间:2023-05-04 13:22:56 阅读:18459 作者:3110

一些说明的函数接口:

[Y,PS ]=最大最大值(x ) ]

[Y,PS ]=最大最小(x,FP ) )。

y=map minmax ((‘apply’,x,PS ) ) ) )。

x=最大最小值(‘reverse’,y,PS ) )。

用实例说明,测试数据x1=[1 2 4],x2=[5 2 3];

[y,PS]=mapminmax(x1 ) )

y=

-1.0000 -0.3333 1.0000

ps=

name :‘map minmax’

xrows: 1

xmax: 4

xmin: 1

xrange: 3

yrows: 1

ymax: 1

ymin: -1

yrange: 2

这里,y表示对进行某个正规化而得到的数据,该正规化后的映射被记录在结构体ps中。 看看这个规范化映射是什么样的。

Algorithm

itisassumedthatxhasonlyfiniterealvalues,andthattheelementsofeachrowarenotallequal。

y=(ymax-ymin ) (*(x-xmin )/)/(xmax-xmin ) ymin;

[是关于这个算法的问题。 算法的前提是每行的元素不相同。 如果一样怎么办? ]实现的方法是,某一行的要素全部相同,例如xt=[1 1 1],此时xmax=xmin=1,此时的变换为y=ymin。 matlab内部就这样解决。 否则,应该除以0。 没有意义。 ]

也就是说,如果对x1=[1 2 4]使用该地图f:2*(x-xmin )/(xmax-xmin ) (-1 ),则y=[ -1.0000 -0.3333 1.0000]

看看:对于x1是否xmin=1,xmax=4;

y(1)=2*(1-1)/(4-1) )-1 )=-1;

y(2)=2*(2-1)/)4-1) (-1 )=-1/3=-0.3333;

y(3)=2*(4-1)/(4-1) )-1 )=1;

看来确实实现了这个映射。

上述algorithm映射函数中,ymin和ymax是参数,可以自己设置。 默认值为- 1,1;

例如:

[y,PS]=mapminmax(x1 );

ps.ymin=0;

[y,PS ]=最大最小(x 1,PS ) )。

y=

0 0.3333 1.0000

ps=

name :‘map minmax’

xrows: 1

xmax: 4

xmin: 1

xrange: 3

yrows: 1

ymax: 1

ymin: 0

yrange: 1

此时的映射函数为:f:1*(x-xmin )/(xmax-xmin )0)。 是不是这样,这次请自己验证一下。 o ) ) _) ) o

如果对x1=[1 2 4]采用某种归一化方式,现在对x2=[5 2 3]采用相同的归一化方式[相同的映射]。 如下所示为:

[y1,PS]=mapminmax(x1 );

y2=map minmax (() ) ) ) ) ) )。

y2=

1.6667 -0.3333 0.3333

即,x1采用的正规化图为: f :2 * (记录在x-1 )/(4-1)-1 )、(ps中),对于x2也采用该图。

x2=[ 5,2,3 ],用这个映射来计算一下。

y2(1)=2)5-1(/4-1 ) (1)=5/3=1)2/3=1.66667

y2(2)=2(2-1)/)4-1(-1 )=-1/3=-0.3333

y2(3)=2(3-1)/(4-1(-1 )=1/3=0.3333

x=map minmax (‘reverse’,y,PS ) )的作用是进行逆正规化,并将正规化后的数据逆正规化以获得原始数据:

[y1,PS]=mapminmax(x1 );

xtt=map minmax ((‘reverse’,y1,ps ) ) ) ) ) ) ) ) )。

xtt=

1 2 4

此时又得到了原来的x1 (xtt=x1 );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。