赞
踩
假如数据实际取值范围为 X i ∈ [ − π π ] , i = 1 , 2 , 3 X_i \in [-\pi \ \ \pi], i=1,2,3 Xi∈[−π π],i=1,2,3,变量服从正态分布
示例如下:
%% 数据归一化处理及其概率密度函数 clear clc Mu = [0 0 0]; % 均值 Sigma = [1 1 1]; % 标准差 CovarianceMatrix = Sigma; CovarianceMatrix = diag(CovarianceMatrix); % 转换为对角矩阵 N = 100000; % 样本点数目 X = lhsnorm(Mu, CovarianceMatrix, N); % 采用lhsnorm生成均值为Mu,标准差为Sigma的矩阵 % 绘制归一化之前的X的概率密度函数 [f,xi] = ksdensity(X(:,1)); % 计算概率密度函数,返回在xi点的概率密度f pic1 = plot(xi,f,'LineWidth',2,'LineStyle','-','color','K'); % 绘制概率密度曲线 hold on % 保留当前figure,实现图层叠加 %% 归一化数据,并将数据放缩到实际取值范围 [x_pdf,ps1]=mapminmax(X' ,0 ,1); % mapminmax是按照行进行归一化的,因此要对矩阵X进行转置 x_pdf = x_pdf'; % 归一化后再将矩阵X转置回来 x_pdf = -pi+2.*pi.*x_pdf; % 放缩到原函数取值范围 % 绘制归一化之后的x_pdf的概率密度函数 [f,xi] = ksdensity(x_pdf(:,1)); pic2 = plot(xi,f,'LineWidth',2,'LineStyle','-','color','r');% 绘制概率密度曲线 hold on %% 反归一化数据,注意一定要先把数据从实际范围归一化(或放缩)到[0 1]之后,再反归一化处理 [x_pdf,ps2]=mapminmax(x_pdf' ,0 ,1); % 首先将数据归一化到放缩前的范围 x_pdf = x_pdf'; X_re = mapminmax('reverse',x_pdf',ps1); % 反归一化到原分布下的数据 X_re = X_re'; % 绘制反归一化之后的x_pdf的概率密度函数 [f,xi] = ksdensity(X_re(:,1)); % 计算概率密度函数,返回在xi点的概率密度f pic3 = plot(xi,f,'color','g','Marker','o');%绘制概率密度曲线 legend('原始数据','归一化后数据','反归一化后数据')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。