在matlab中怎么做数据归一化处理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在matlab中怎么做数据归一化处理?相关的知识,希望对你有一定的参考价值。

参考技术A

代码如下:

x1 = [1 2 4], x2 = [5 2 3];
>> [y,ps] = mapminmax(x1)
y =
   -1.0000   -0.3333    1.0000

ps =
      name: 'mapminmax'
     xrows: 1
      xmax: 4
      xmin: 1
    xrange: 3
     yrows: 1
      ymax: 1
      ymin: -1
    yrange: 2

一、[关于此算法的一个问题.算法的假设是每一行的元素都不想相同,那如果都相同怎么办?实现的办法是,如果有一行的元素都相同比如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。

matlab中直方图归一化问题

假设matlab产生如下向量:
x=-1:0.1:1;
y=randn(1,10);
n=hist(y,x);
这样画出的直方图竖坐标显示的是数值的个数。
我的问题是:怎么把竖坐标归一化为0~1。但是横坐标标示的范围不变呢?
我的思路是把n的元素都用10来除,但是这样横坐标就会变了。就是怎么样保持横坐标不变呢?
补充:问下
yt=get(gca,'ytick');
set(gca,'yticklabel',num2str(yt/10));
这两句话啥意思?

参考技术A axis([-1.5,1.5,0,0.5])
AXIS([XMIN XMAX YMIN YMAX])
画图后用这个语句就可以规定坐标轴的范围的
参考技术B 参见http://www.matlabsky.com/thread-9166-1-1.html

以上是关于在matlab中怎么做数据归一化处理?的主要内容,如果未能解决你的问题,请参考以下文章

matlab 矩阵怎么归一化

关于用matlab进行向量归一化的问题

matlab 怎样进行数据归一化

如何用matlab对以下函数进行归一化处理

matlab程序的归一化问题

matlab中啥叫归一化坐标