• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: Matlab
  • 标签: 误差处理  

资源简介

matlab编写的去除粗大误差的程序,输入含有粗大误差的数据,输出剔除粗大误差的数据和粗大误差在原数据中的序号,注释清晰,程序很容易看懂。

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 以下为测试3sigma法去除粗大误差的代码
% 使用时,将其拷贝到命令窗口,回车执行即可
% clear
% clc
% X = ones(1 50);
% X(1) = 1.3;
% X(2) = 1.1;
% X(7) = 1.8;
% X(10) = 1.5;
% X(12) = 0.7;
% X(13) = 0.9;
% X(18) = 0.5;
% X(20) = 0.3;
% [dest index] = EliminateGrossErrors(X)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%% 去除粗大误差
function [dest index] = EliminateGrossErrors(src)
dest = src;     % 去除粗大误差之后的数据
index = [];     % 每次去除的数据编号
% 3sigma法则
while 1
    y = dest - mean(dest);                  % 残差
    s = sqrt(sum(y .^ 2) / (numel(y) - 1)); % 标准差
    id = find(abs(y) > 3 * s);              % 粗大误差序号
    if isempty(id)                          % 判断是否还含有粗大误差
        break;
    else
        if isempty(index)               

评论

共有 条评论