在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));
这两句话啥意思?
AXIS([XMIN XMAX YMIN YMAX])
画图后用这个语句就可以规定坐标轴的范围的 参考技术B 参见http://www.matlabsky.com/thread-9166-1-1.html
以上是关于在matlab中怎么做数据归一化处理?的主要内容,如果未能解决你的问题,请参考以下文章