matlab格拉布斯准则
时间: 2023-11-21 08:58:38 浏览: 92
以下是Matlab中使用格拉布斯准则的方法:
1.引入代码
```matlab
function [data_new] = Outliers_Remover(data)
% 格拉布斯准则去除异常值
% 输入:data为待处理数据,可以是向量或矩阵
% 输出:data_new为去除异常值后的数据
[row, col] = size(data);
if row == 1 || col == 1 % 处理向量
data_new = data;
while 1
Gi = abs(data_new - mean(data_new)) / std(data_new); % 计算Gi值
if max(Gi) <= 3 % 判断是否有异常值
break;
else
[~, index] = max(Gi); % 找到最大的Gi值
data_new(index) = []; % 去除异常值
end
end
else % 处理矩阵
data_new = data;
for i = 1:col
while 1
Gi = abs(data_new(:, i) - mean(data_new(:, i))) / std(data_new(:, i)); % 计算Gi值
if max(Gi) <= 3 % 判断是否有异常值
break;
else
[~, index] = max(Gi); % 找到最大的Gi值
data_new(index, i) = []; % 去除异常值
end
end
end
end
end
```
2.使用Outliers_Remover函数
```matlab
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100];
data_new = Outliers_Remover(data);
disp(data_new); % 输出:1 2 3 4 5 6 7 8 9 10
```
3.注意事项
- 格拉布斯准则只适用于正态分布的数据。
- 格拉布斯准则只能去除单变量的异常值,对于多变量的异常值需要使用其他方法。
阅读全文