Only abnormally large outlier values are removed, not small ones
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I used the rmoutlier function to remove outliers from a dataset but it only removed the abnormally large value, not the abnormally small one. Please see figure for reference. Also I used the following line of code:
[Array_wo_outliers(1,:), TF]=rmoutliers(Array_Original(1,:),'mean');
How can I remove both???
Thank you
0 Kommentare
Antworten (1)
AndresVar
am 26 Mär. 2022
your data has zeros that make the mean closer to the small peak.
you should ignore the zeros, maybe you can throw them away OR you can try setting them equal to the non-zero data mean.
load('testdatarmoutlier.mat')
ind0 = y==0; % where are the zeros
meannz = mean(y(~ind0)); % mean of non-zero data
figure;
plot(x,y,'rx')
yline(mean(y),'k',Label='mean (close to bottom!)')
yline(meannz,'k',Label='mean ingnore zeros')
y(ind0)=meannz; % make zeros equal to the non-zero data mean
[y2,ind]=rmoutliers(y,'mean');
y(ind0)=0; % restore zeros
figure;
plot(x(~ind),y(~ind),'x')
1 Kommentar
Image Analyst
am 26 Mär. 2022
or threshold
threshold = 0.5;
y(y < threshold) = []; % Remove all values less than the threshold
Siehe auch
Kategorien
Mehr zu Tables finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!