Azzera filtri
Azzera filtri

Removing outliers from data

7 visualizzazioni (ultimi 30 giorni)
AU
AU il 31 Mag 2019
Modificato: Adam il 31 Mag 2019
How can I remove outliers of a vector where an outlier is defined as a point more than three standard deviations from the mean of the data in matlab 2R2017b? I also want to remove outliers using a 10 day moving average or a smoothed average.

Risposta accettata

Adam
Adam il 31 Mag 2019
Modificato: Adam il 31 Mag 2019
threshold = 3 * std( data );
validRange = mean( data ) + [-1 1] * threshold;
dataWithoutOutliers = data( data >= validRange(1) & data <= validRange(2) );
should do the first bit, though that is typed off the top of my head, not tested.
doc movmean
should help with a moving average if you are using R2016a or later.
  2 Commenti
AU
AU il 31 Mag 2019
Thank you for the answer Adam. The last line gives me the error: Operands to the || and && operators must be convertible to logical scalar values. How can I solve it?
Adam
Adam il 31 Mag 2019
Modificato: Adam il 31 Mag 2019
Ah, yes. I've corrected the answer now, using just a simple & to AND together non-scalar arrays.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Descriptive Statistics in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by