時間倉促,僅為了數學建模入門使用
**簡單描述:
隨機生成一組資料
手動新增奇怪的資料值
使用資料判斷對資料進行清洗
生成直方圖、求平均值對處理前、處理後的資料進行對比
**如下:
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)
910 a =
1112 -0.0023
1314 >> c=std(aa)
1516 c =
1718 0.5318
1920 >> num=find(aa>(a+3*c)|aa<(a-3*c))
2122 num =
2324 100
25 301
26 501
27 701
2829 >>std(aa)
3031 ans =
3233 0.5318
3435 >> for i = 1:1000
36if((aa(i)>(a+3*c)|aa(i)<(a-3*c)))
37 aa(i)=0;
38else
continue;39
end40
end41 >> len=length(aa);
42 >>std(aa)
4344 ans =
4546 0.0996
4748 >>plot(aa);
4950 >>mean(aa)
5152 ans =
5354 -0.0033
5556 >> hist(aa,100);
刪除重複的行
使用unique函式
1 >> a=[1,2,3;4,5,6;3,5,7;1,2,3]23 a =
45 1 2 3
6 4 5 6
7 3 5 7
8 1 2 3
910 >> unique(a,'
rows
','stable')
1112 ans =
1314 1 2 3
15 4 5 6
16 3 5 7
9/15更新
異常資料的處理
若確認資料在同乙個樣本當中,絕大部分資料應該在均值為4or5個標準偏差之內
對壞資料的處理
①個別處理
②按照一定百分比剔除最大與最小的一部分資料,exp(上下各剔除百分之2.5%),壞資料去除以後對統計量重新計算
這裡是對②實現的簡單例子
使用trimmean函式對壞資料進行剔除
呼叫格式
m=trimmean(x,percent)
忽略資料上下各percent/2 %後的均值
可以使用下列m函式去除壞資料
%trim.c 檔案function data=trim(data,outval)
%去除壞資料 包括nan、inf和異常大小資料
if nargin<2
outval=4
;end
outliers = (isnan(data)|abs(data)==inf);
[n,m]=size(data);
if m>1
, data(any(outliers
'),:)=;
else
data(find(outliers
'),:)=;
end[n,m]=size(data);
mu=mean(data);
sigma=std(data);
outliers=(abs(data-ones(n,1)*mu)>outval*ones(n,1)*sigma);
if m>1
, data(any(outliers
'),:)=;
else
data(find(outliers
'),:)=;
end
下面是函式呼叫例項
>>clear all;>> c=[nan;ones(100,1);inf;100] %含有nan inf和乙個不正常大的數100
c =nan
111111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
11inf
100>> mean(c),trimmean(c,5
)ans =nan
ans =
1>> c=trim(c)
c = 111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1>>
matlab 語言入門簡單記錄
matlab是弱型別。也就是變數賦值什麼就是什麼型別了。強型別的語言比如說c 這些,需要事先定義型別,定義之後才能使用。matlab可以直接使用賦值的變數。matlab的所有的值的儲存,都是以矩陣為基本單位的。比如說乙個變數的話就是乙個1 1的矩陣。常量 i or j 虛數單位,i 2 j 2 1 ...
關於MATLAB入門的簡單記錄1
陣列裡空陣列直接使用類似於 a 完成操作 魔方陣列有內建函式,a magic i i為需要的行列數 matlab可以支援生成子陣列 例如child a 3,取a陣列的第三行為child作為子陣列 child a 3,2,4 取a陣列的第三行的第二列和第四列為child作為子陣列 child a 3,...
Hog特徵的簡單實現 matlab
hog特徵的簡單實現 針對hog特徵不做過多的解釋 可參考其他博主的原理介紹。本文是matlab版本的實現。該版本的hog特徵將影象resize為64 128 首先將rgb轉灰度圖 再進行伽馬校正 對伽馬校正後的影象做歸一化處理 為什麼這樣做,請參看其他博主具體的原理介紹 伽馬校正使用的是 open...