MATLAB实现规范化(normalize)数据的函数实现

对数据进行规范化和计算K近邻一样经常使用,所以用MATLAB直接实现一个函数保存在博客上,这样每次使用的时候直接从这里复制一份就可以了,所以说博客对于个人来说也是一个移动的笔记,只要在一个有网络的地方就可以查阅。

normalize的MATLA函数代码实现如下所示,要求输入三个参数:数据矩阵,规范化后的最小值lowbound和规范化后的最大值upbound。其中数据矩阵要求每一行表示一个多维样本点。函数将输出一个范围在lowbound到upbound之间的新的数据矩阵。

function [ Result ] = normalize( Data,lowbound,upbound )
%将数据矩阵Data进行规范化
%新的上界是upbound,新的下界是lowbound
%要求输入的数据矩阵中每一行表示一个多维样本点

msize = size(Data);
Result = zeros(msize(1),msize(2));%存储结果
mins = Data(1,:);%储存每一维的最小值
maxs = Data(1,:);%储存每一维的最大值

%%%%
 % 计算每一维度的最小值与最大值
 %
%%%%
for i = 1:msize(1)
    for j = 1:msize(2)
        if Data(i,j)<mins(j)
            mins(j) = Data(i,j);
        end
        if Data(i,j)>maxs(j)
            maxs(j) = Data(i,j);
        end
    end
end

for i = 1:msize(1)
    for j = 1:msize(2)
        Result(i,j) = lowbound + (Data(i,j)-mins(j))/(maxs(j)-mins(j))*(upbound-lowbound);
    end
end

end

MATLAB其实是有现成的函数,也可以直接调用MATLAB中的库函数。

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值