matlab正态分布标准化
时间: 2023-10-29 16:54:02 浏览: 365
matlab正态分布.pdf
在Matlab中,对数据进行正态分布标准化有两种常用方法。第一种是极值标准化方法,使用该方法可以将数据标准化到[0,1]的范围内。具体实现代码如下:
```matlab
function out = mystand(A)
out = [];
n = size(A,1);
minA = min(A);
maxA = max(A);
out = (A - repmat(minA,n,1)) ./ repmat(maxA - minA,n,1);
end
```
调用该函数时,可以将要进行标准化的数据作为输入参数传入,例如:
```matlab
A = randn(20,20) * 2 + 1;
mystand(A);
```
该方法会返回一个标准化后的矩阵,使得所有的数据都落在[0,1]之间。
第二种方法是Z标准化,也称为z-score标准化。该方法基于数据的均值和标准差进行标准化,使得处理后的数据符合标准正态分布,即均值为0,标准差为1。具体实现代码如下:
```matlab
function out = myzscore(A)
temp = [];
demesion = size(A);
meanA = mean(A);
stdA = std(A);
for i = 1:numel(A)
temp = [temp (A(i) - meanA) / stdA];
end
out = reshape(temp, demesion);
end
```
调用该函数时,同样将要进行标准化的数据作为输入参数传入,例如:
```matlab
A = randn(20,20) * 2 + 1;
myzscore(A);
```
该方法会返回一个标准化后的矩阵,使得数据的均值为0,标准差为1。
阅读全文