Matlab归一化函数(mapminmax)

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

功能:将矩阵的每一行处理成[-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,则此时数据不变。

参考文献

编程小号
上一篇 2025-02-09 22:27
下一篇 2025-02-23 19:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/133053.html