当前位置: 首页 > article >正文

matlab数据归一化与反归一化处理

假如数据实际取值范围为 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('原始数据','归一化后数据','反归一化后数据')

在这里插入图片描述


http://www.kler.cn/a/13447.html

相关文章:

  • 信息安全复习四:置换密码乘积密码隐写术
  • Baumer工业相机中偏振相机如何使用Baumer堡盟GAPI SDK来进行偏振数据的计算转换输出(C#)
  • 【NestJs】数据库重构
  • 德赛西威上海车展重磅发布Smart Solution 2.0,有哪些革新点?
  • 2023年全国最新高校辅导员精选真题及答案60
  • 外链是什么意思,什么是外链
  • educoder实训——函数【1】
  • 应用程序性能监控系统(APM) :SkyWalking 简介
  • AI智能课程第一讲:chatgpt介绍
  • 快手社招Java后端开发岗面试,被问麻了
  • Python 机器人学习手册:6~10
  • 2023的指纹浏览器盘点,指纹浏览器使用全攻略
  • 告别StringUtil:使用Java的全新String API优化你的代码
  • python并行运算
  • Locust 压力测试helloworld
  • 从promise到await
  • Vue表单基本操作-收集表单数据
  • python json数据写入excel
  • 代码随想录Day58
  • 公司构成-英文