Azzera filtri
Azzera filtri

Removing spikes with standard deviation

3 visualizzazioni (ultimi 30 giorni)
Hey.
I'm trying to remove some spikes in a water current data using nanmean and nanstd.
To do it, i created this script:
Data3=Data2(:,:,5:6); %Data2 is the real data matrix. To don't take risks, i created a copy and work on it.
it=2;
[~,col,page]=size(Data3);
for p=1:page
for c=1:col
for i=it+1:length(Data3)-it;
x=nanmean(Data3(i-it:i+it,c,p));
y=nanstd(Data3(i-it:i+it,c,p));
if Data3(i,c,p)>x+3*y || Data3(i,c,p)<x-3*y;
Data3(i,c,p)=NaN;
end
end
end
end
%clear p c r x y z k row col page it
After running it, i did a plot to check if the original data(Data2) are now diferent from the one with no spikes(Data3)
plot(Data2(:,5,5))
hold
plot(Data3(:,5,1))
Despite this, i realized that they still equivalents and perfectly equals.
Why my code isn't working?
I appreciate any kind of help on it. Thanks to you all. This community is one of the best in the world!

Risposta accettata

Star Strider
Star Strider il 21 Mar 2022
Without the data, it is not possible to determine the reason the code does not work.
See if the rmoutliers function (introduced in R2018b) will do what you want.
  6 Commenti
Gabriel Luca Pugliese Borges
Alright, Strider. Thank you so much for all helping and advices. I will test all the options that you gave me.
Wish you a good day.
Star Strider
Star Strider il 21 Mar 2022
My pleasure!
You, too!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Time-Frequency Analysis 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