matlab归一化和反归一化函数
时间: 2023-11-09 16:05:26 浏览: 55
Matlab中常用的归一化函数有最小-最大归一化(min-max normalization)、Z-score归一化(Z-score normalization)和小数定标规范化(decimal scaling normalization)等。其中,最小-最大归一化将数据缩放到[0,1]区间内,Z-score归一化将数据缩放到均值为0,标准差为1的正态分布中,小数定标规范化则是将数据除以一个适当的基数,使得所有数据的绝对值都小于1。反归一化函数则是将归一化后的数据还原为原始数据的函数,其实现方法与归一化函数相对应。
以下是Matlab中常用的归一化和反归一化函数:
最小-最大归一化:
```matlab
function [X_norm, min_val, max_val] = minmax_normalize(X)
min_val = min(X);
max_val = max(X);
X_norm = (X - min_val) / (max_val - min_val);
end
function X = minmax_denormalize(X_norm, min_val, max_val)
X = X_norm * (max_val - min_val) + min_val;
end
```
Z-score归一化:
```matlab
function [X_norm, mu, sigma] = zscore_normalize(X)
mu = mean(X);
sigma = std(X);
X_norm = (X - mu) / sigma;
end
function X = zscore_denormalize(X_norm, mu, sigma)
X = X_norm * sigma + mu;
end
```
小数定标规范化:
```matlab
function [X_norm, base] = decimal_scaling_normalize(X)
base = ceil(log10(max(abs(X))));
X_norm = X / (10^base);
end
function X = decimal_scaling_denormalize(X_norm, base)
X = X_norm * (10^base);
end
```