本段代码提供了多种在MATLAB中实现数据归一化的实用方法,涵盖最小-最大规范化、Z-score标准化等技术,适用于数据分析与机器学习场景。
以下是关于MATLAB归一化与反归一化的详细代码示例。
```matlab
% 归一化函数
function [Y, mu, sigma] = normalize(X)
% X为输入的矩阵,每一列代表一个特征向量。
mu = mean(X); % 计算每列(每个特征)均值
sigma = std(X, 0, 1); % 计算标准差
Y = (X - repmat(mu,size(X,1),1)) ./ repmat(sigma,size(X,1),1);
end
% 反归一化函数
function X_recovered = denormalize(Y,mu,sigma)
% Y为经过normalize处理后的矩阵
% mu和sigma分别为在normalize过程中计算得到的均值与标准差
X_recovered = (Y .* repmat(sigma,size(Y,1),1)) + repmat(mu,size(Y,1),1);
end
% 示例数据准备
X = [2 4; 3 5; 8 7];
% 使用归一化函数进行处理并获取结果
[Y,mu,sigma] = normalize(X);
disp(原始矩阵 X:);
disp(X)
disp(归一化后的矩阵 Y:);
disp(Y)
% 反向操作,使用denormalize恢复数据
X_recovered = denormalize(Y, mu, sigma);
disp(反归一化后恢复的矩阵 X_recovered);
disp(X_recovered);
```
上述代码实现了对输入数据进行标准化处理,并提供如何通过均值和标准差来还原原始数值的功能。