1.數據預處理:
matlab導入excel數據:在MATLAB中,如何導入Excel文件中的數據-百度經驗 (baidu.com)
方法二:
a=xlsread('A.xls',1)指的是excel文件里的第一張工作表,例如sheet1。
參考:https://blog.csdn.net/weixin_30633405/article/details/95177009
在用MATLAB進行數據分析的時候,壞點對正確結果的影響比較大,
因此,我么需要剔除野點,對於壞值的剔除,我們
利用 3σ准則 剔除無效數據;
3σ准則又稱為拉依達准則,它是先假設一組檢測數據只含有隨機誤差,對其進行計算處理得到標准偏差,按一定概率確定一個區間,
認為凡超過這個區間的誤差,就不屬於隨機誤差而是粗大誤差,含有該誤差的數據應予以剔除。且3σ適用於有較多組數據的時候。
這種判別處理原理及方法僅局限於對正態或近似正態分布的樣本數據處理,它是以測量次數充分大為前提的,
當測量次數較少的情形用准則剔除粗大誤差是不夠可靠的。因此,在測量次數較少的情況下,最好不要選用准則,而用其他准則。
在正態分布中σ代表標准差,μ代表均值。x=μ即為圖像的對稱軸
3σ原則為
數值分布在(μ-σ,μ+σ)中的概率為0.6826
數值分布在(μ-2σ,μ+2σ)中的概率為0.9544
數值分布在(μ-3σ,μ+3σ)中的概率為0.9974
可以認為,Y 的取值幾乎全部集中在(μ-3σ,μ+3σ)區間內,超出這個范圍的可能性僅占不到0.3%.
下面是對一組元素進行壞值剔除的方法:
對每一列進行分析,參考代碼:

1 a=xlsread('附件一:已結束項目任務數據.xls',1,'B2:B836'); 2 %% 3 [h,p]=lillietest(a) %判斷是否正態。h=0 4 %返回值h為假設,只有0和1兩種情況,h=0假設符合正態分布,h=1假設不符合正態分布 5 %返回值p為方差概率,也可以說事情的發生概率,p<0.05(顯著性水平通常取0.05,還有0.025和0.01三種情況)為不可能事件,拒絕;p>0.05,接受 6 %% 7 subplot(2,1,1); 8 plot(a); 9 aa=mean(a); 10 sig=std(a); %算出x的標准偏差。 11 m=zeros(1,length(a)); 12 i=1; 13 for t=1:length(a) 14 m(t)=abs(a(t)-aa); 15 if m(t)>3*sig 16 n(t)=aa;%這里把異常值替換成了均值,也可以直接替換成其他的值如0等,然后進行剔除 17 num(i)=a(t);%顯示異常數據,如果沒有異常數據的話將不會產生num變量 18 i=i+1; 19 else 20 n(t)=a(t); 21 end 22 end 23 b=0:1:length(n)-1; 24 subplot(2,1,2); 25 plot(b,n); 26 title('拉以達法則剔除壞值') 27 xlabel('采樣時間'); 28 ylabel('采樣點數')
處理數據參考: