Matlab归一化函数(mapminmax)

Matlab归一化函数(mapminmax)功能:将矩阵的每一行处理成[-1,1]区间。处理需要归一化的m*n矩阵X,归一化后的矩阵记为Y。主要有5种调用形式1.[Y,PS]=mapminmax(X,YMIN,YMAX)其中,YMIN是我们期望归一化后矩阵Y每行的最小值,YMAX是我们期望归一化后矩阵Y每行的最大值。例1:待处理矩阵X=[456;789]我们期望归一化后每行的最小值为0,最大值为1.程序如下…

大家好,又见面了,我是你们的朋友全栈君。

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

参考文献

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148398.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [Warning] large integer implicitly truncated to unsigned type [-Woverflow][通俗易懂]

    [Warning] large integer implicitly truncated to unsigned type [-Woverflow][通俗易懂][Warning]largeintegerimplicitlytruncatedtounsignedtype[-Woverflow]警告的原因是:整数溢出整数溢出:当整数达到它所能表述的最大值时,会重新从起点开始#include<stdio.h>intmain(void){ unsigneda=12345678910; printf(“a=%d\n”,a); return0;}该程序输出以后并不是输出a=12345678910而是:上面的代码

    2022年7月25日
    9
  • python 安装第三方包-安装失败(pycharm/ anaconda navigator)

    python 安装第三方包-安装失败(pycharm/ anaconda navigator)安装/卸载第三包:方法一:pipinstall包名;pipuninstall包名。方法二:pipinstall下载路径\包名.whl(需要先下载第三包:地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/,找到所需的包并下载保存),如下例安装gensim包所示:方法三:若在pycharm编辑中,则在菜单setting/project…

    2022年8月25日
    5
  • SQL 报错注入详解[通俗易懂]

    SQL 报错注入详解[通俗易懂]一、报错注入详解近期学习SQL报错注入,本篇文章为关于报错注入的一些个人理解,如有错误,希望指出本文使用sqli-labs数据库作为示例1、十种MySQL报错注入:报错注入方式有很多,其中比较常见的有floor()、extractvalue()、updatexml()三种,本篇文章主要对这三种进行分析,其他的请参考文章:十种MySQL报错注入2、floor()2.1、payload分析先贴上一个常见的payload再进行分析(sqli-labsLess-5)’

    2022年9月30日
    7
  • git 修改用户名密码「建议收藏」

    在控制面板修改凭证就可以进行修改用户名密码。 

    2022年4月8日
    61
  • BCG界面库_如何用vc设计界面

    BCG界面库_如何用vc设计界面BCGControlBarLibraryProfessionalEdition installation:整个库的源代码安装在\BCGCBPro 目录下面.可执行文件(*.dll)安装在\Bin (forVisualStudio6.0)或\Bin7 (forVisualStudio.NET)下面。请在你的源代码中做如下的改变:在应用程序的Inc

    2022年10月8日
    3
  • ORACLE 更改username

    ORACLE 更改username

    2022年1月23日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号