数据归一化-matlab代码

记A为原始数据,A1为归一化后的数据, PS为对应关系**

1.归一化

FlattenedData = A(:)'; % 展开矩阵为一列,然后转置为一行。
[A1,PS] = mapminmax(FlattenedData, -1, 1); % 归一化到[-1, 1]。
A2 = reshape(A1, size(A));        %还原为原始矩阵形式。

2.反归一化

A3= mapminmax('reverse',A1,PS);  %反归一化
A4=reshape(A3, size(A));          %调整形状
### Matlab 数据归一化处理 #### 归一化函数实现 为了将数据归一化到指定范围内,在Matlab中可以编写如下函数: ```matlab function [normalizedData, originalMin, originalMax] = normalizeData(data) % 此函数接收原始数据data并返回其归一化版本以及最小最大值以便后续反归一化操作。 originalMin = min(min(data)); % 获取每列中的最小值 originalMax = max(max(data)); % 获取每列中的最大值 range = originalMax - originalMin; if range == 0 normalizedData = zeros(size(data)); else normalizedData = (data - originalMin) ./ range; % 应用线性变换使新范围位于[0,1] end ``` 此段代码实现了基本的数据归一化功能,适用于矩阵形式的数据集[^2]。 #### 反归一化过程 当完成模型预测或其他计算后可能需要恢复原来尺度上的数值,则可以通过下面的方法来进行反归一化转换: ```matlab function restoredData = denormalizeData(normalizedData, originalMin, originalMax) % 输入参数为之前保存下来的最小最大值和已经过归一化数据 restoredData = normalizedData .* (originalMax - originalMin) + originalMin; ``` 这段脚本允许用户轻松地将在先前步骤中被缩放过的特征重新映射回它们原本的实际意义区间内[^4]。 #### 实际案例展示 考虑一组简单的二维坐标点作为实例来说明上述方法的应用场景: ```matlab % 创建随机样本数据 sampleData = rand(10, 2); disp('Original Data:'); disp(sampleData); [normSampleData, sampleMin, sampleMax] = normalizeData(sampleData); disp('Normalized Data:'); disp(normSampleData); denormSampleData = denormalizeData(normSampleData, sampleMin, sampleMax); disp('Denormalized Data:'); disp(denormSampleData); ``` 通过执行以上命令序列,可以看到初始创建的一组伪随机数经过标准化后再还原的过程。这有助于理解整个流程的工作原理及其效果验证[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值