Matlab数值剔除

Matlab 数值剔除

  • Matlab数值剔除
    • 数据处理

Matlab数值剔除

在进行人工智能等算法之前,对样本数值处理分析时经常要把其中的坏值删除掉。因为输入输出都是多值的,成矩阵排列,删除某一个值意味着要删除相关的所人值,而不仅仅是该值本身。花了一天时间,终于在matlab时实现了。

数据处理

如下图所示,某一行数据中有一个超出了要求,哪么整行都要删除。
数据图

坏值判断准则就不多啰嗦,数理统计中都有。代码如下:

[m,n]=size(outputData);
P=outputData;
outputD=outputData;
inputD=inputData;
de=[]
for i =1:1:n
    ave = mean(P(:,i));%mean 求解平均值
    u = std(P(:,i));%求解标准差
    for j=1:1:m        
     if(abs(P(j,i)-ave)>2.5*u)%不符合 3σ准则 , 剔除这个元素     
        de=[de;j]     
     else
        continue;
     end      
        
    end  
end
dee=unique(de)
testin1=inputD(dee,:);
testout1=outputD(dee,:);
outputD(dee,:)=[];
inputD(dee,:)=[];
outputData=outputD;
inputData=inputD;`

你可能感兴趣的:(matlab,数据分析)