• 大小: 2.25KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: Matlab
  • 标签: matlab  

资源简介


基于MATLAB的狄克逊判别准则,可以用来判断和剔除粗大误差与野值。

资源截图

代码片段和文件信息

a=[12345420212345432123484321];
subplot(121);stem(a‘filled‘);
xlabel(‘序列个数n‘);
ylabel(‘幅值‘);
title(‘原序列‘);
axis([0 25 0 25]);
b=input(‘请输入阈值b:\n‘);
switch b
    case b==0.05
        x=1;
    otherwise
        x=2;
end
while(1)
    a=sort(a);
    i=1:length(a);
    n=length(a);
    T=[0.988 0.889 0.780 0.698 0.637 0.683 0.635 0.597 0.679 0.642 0.651 0.641 0.616 0.595 0.577 0.561 0.547 0.535 0.524 0.514 0.505 0.497 0.489;0.341 0.765 0.642 0.560 0.507 0.554 0.512 0.477 0.576 0.546 0.521 0.546 0.525 0.507 0.490 0.475 0.462 0.450 0.440 0.430 0.421 0.413 0.406];
    if n<=7
        r101=(a(n)-a(n-1))/(a(n)-a(1));
        r102=(a(1)-a(2))/(a(1)-a(n));
        g=T(xn-2);
        if r101>g
            fprintf(‘剔除的数是 %f\n‘a(n));
            a(n)=[];
        else fprintf(‘没有粗大误差\n‘);
        end
        if r102>g
            fprintf(‘剔除的数是 %f\n‘a(1));
            a(1)=[];
        else break;
        end
    end
    if (n<=8)&&(n<=10)
 

评论

共有 条评论