Matlab入門:實現簡單的數據剔除

時間倉促,僅爲了數學建模入門使用

代碼簡單描述:

隨機生成一組數據

手動添加奇怪的數據值

使用數據判斷對數據進行清洗

生成直方圖、求平均值對處理前、處理後的數據進行對比

代碼如下:

 1 >> aa=randn(1000,1)/10;
 2 >> aa(100)=aa(100)+3;
 3 >> aa(301)=aa(301)+5;
 4 >> aa(501)=aa(501)+7;
 5 >> aa(701)=aa(701)-14;
 6 >> plot(aa);
 7 >> hist(aa,100);
 8 >> a=mean(aa)
 9 
10 a =
11 
12    -0.0023
13 
14 >> c=std(aa)
15 
16 c =
17 
18     0.5318
19 
20 >> num=find(aa>(a+3*c)|aa<(a-3*c))
21 
22 num =
23 
24    100
25    301
26    501
27    701
28 
29 >> std(aa)
30 
31 ans =
32 
33     0.5318
34 
35 >> for i = 1:1000
36 if((aa(i)>(a+3*c)|aa(i)<(a-3*c)))
37 aa(i)=0;
38 else continue;
39 end
40 end
41 >> len=length(aa);
42 >> std(aa)
43 
44 ans =
45 
46     0.0996
47 
48 >> plot(aa);
49  
50 >> mean(aa)
51 
52 ans =
53 
54    -0.0033
55 
56 >> hist(aa,100);

刪除重複的行

使用unique函數

 1 >> A=[1,2,3;4,5,6;3,5,7;1,2,3]
 2 
 3 A =
 4 
 5      1     2     3
 6      4     5     6
 7      3     5     7
 8      1     2     3
 9 
10 >> unique(A,'rows','stable')
11 
12 ans =
13 
14      1     2     3
15      4     5     6
16      3     5     7

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章