zoukankan      html  css  js  c++  java
  • MATLAB实现规范化(normalize)数据的函数实现

    https://www.cnblogs.com/mtcnn/p/9422559.html

    https://www.it610.com/article/1292023054091755520.htm

    对数据进行规范化和计算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)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中的库函数。

    matlab 工具函数 —— normalize(归一化数据)——推荐

    function [Samples2]=normalize(Samples)
    [M,N] = size(Samples);
    
    Samples2 = zeros(M,N); %初始化Samples2数组(M*N)
    for i=1:N
        allAtr = Samples(:,i);
        STD = std(allAtr);    % 求标准差
        MEAN = mean(allAtr);  % 求均值
        x = (allAtr-MEAN)/STD;
        Samples2(:,i)=x;
    end
    end
    

      

  • 相关阅读:
    实验6.1
    SOA
    python的镜像包安装
    中文分词:双向匹配最大算法(BI-MM)
    从github中获取代码
    解决文件冲突
    创建分支
    上传本地文件到github
    mysql事务
    查询练习2
  • 原文地址:https://www.cnblogs.com/carl2380/p/14976597.html
Copyright © 2011-2022 走看看