How to remove spikes without modifying the dataset?
35 次查看(过去 30 天)
显示 更早的评论
Hi,
I need to remove spikes from a signal, but I don't want to modify the dataset. Using the medfilt1 function, it can remove spikes but it also interpolates all the dataset. As an example, given the following dataset
data = [1,2,10,1,3,2,1,2];
the function gives
>> medfilt1(data)
ans =
1 2 2 3 2 2 2 1
but what I want is
1 2 NaN 1 3 2 1 2
i.e. I just want to remove the spike (10) replacing it with a NaN.
Is this possible in some way?
Thank you
0 个评论
回答(1 个)
Star Strider
2021-3-22
data = [1,2,10,1,3,2,1,2];
TF = isoutlier(data); % Function Introduced In R2017a
data(TF) = NaN
producing:
data =
1 2 NaN 1 3 2 1 2
To keep the original ‘data’ vector, first make a copy of it, then do the analyses.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Electrophysiology 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!