istisnaları önemsizleştiren iteratif ortalama alma

Xi = i’inci elemanın X değeri
Yi = i’inci elemanın Y değeri
Mx = Elemanların X değerlerinin ortalaması
My = Elemanların Y değerlerinin ortalaması
Dxi = i’inci elemanın ortalamaya X uzaklığı
Dyi = i’inci elemanın ortalamaya Y uzaklığı
Di = i’inci elemanın ortalamaya uzaklığı
ki = i’inci elemanın ortalamaya uzaklığa göre ağırlık katsayısı
Mx’ = itere edilmiş ortalamanın X değeri
Mx’ = itere edilmiş ortalamanın Y değeri
w = yayılma katsayısı (1 alınabilir)

Mx = sum(Xi)/N
My = sum(Yi)/N
Dxi = Xi-Mx
Dyi = Yi-My
Di = sqrt(Dxi*Dxi + Dyi*Dyi)
ki = normalize(1/(Di*w+1))  –> ki/sum(ki)
Mx’ = sum(Xi * ki)
My’ = sum(Yi * ki)

 

iternumber = 10;
w = 1;
Mx = mean(X);
My = mean(Y);
for i=1:iternumber
    Dx = X - Mx;
    Dy = Y - My;
    D = (Dx.*Dx + Dy.*Dy).^0.5;
    k = 1./(D*w + 1);
    k = k./sum(k);
    Mx = sum(X .* k);
    My = sum(Y .* k);
 end
centerX = Mx
centerY = My;

Sadeleştirilmiş versiyonu

floating average formula

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.