数据标准化和归一化

    标准化和归一化的含义和实现形式不是同一回事

1、标准化:

          把数据转化成服从某种分布的数据

       如:均值为0,方差为sigma的数据

    




A = floor(10*rand(10,1));
mA = mean(A,1);
muA = mA-A;
sq_muA =muA.^2;
var = mean(sq_muA,1);
eps_var = sqrt(var.^2+0.01);
AHat = muA./eps_var;


2、图像归一化

img = imread('lena.jpg');

gray = double(rbg2gray(img));

norm_img = gray/255;

imshow(norm_img ,[]) ;


2、矩阵归一化:

         如:进行L2范数归一化


首先按行归一化:

% Examples

A=[3 4;5 12];

[m n] = size(A);

% normalize each row to unit

for i = 1:m

    A(i,:)=A(i,:)/norm(A(i,:));

end


    按列归一化:

% normalize each column to unit

A=[3 4;5 12];

for i = 1:n

    A(:,i)=A(:,i)/norm(A(:,i));

end

    然而,上述代码最能实现功能,但并不是最优的,它只是一种对该过程的最佳理解代码。在Matlab中,for循环是一件非常费时间的结构,因此我们在代码中应该尽量少用for循环。由此,我们可以用repmat命令得到另一种更加简洁更加快速的代码,只是这种代码对于初学者理解起来比较费劲。可以看错是自己水平的一种进阶吧。

%  normalize each row to unit

A = A./repmat(sqrt(sum(A.^2,2)),1,size(A,2));

%  normalize each column to unit

A = A./repmat(sqrt(sum(A.^2,1)),size(A,1),1);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值