Remove a part of data and replace it with data to fit trend
3 次查看(过去 30 天)
显示 更早的评论
Hello, can some one please help me with the removal of data in the photo. I tried all the outlier removals, smooth data and conventional funtions, but it is unable to detect.
回答(1 个)
Hiro Yoshino
2022-1-10
Try this. It removes the dent you see in the plot. Please note this also affect the both edges of the profile.
[cleanedData,outlierIndices,thresholdLow,thresholdHigh] = filloutliers(slip1,...
"linear","movmean",29000,"ThresholdFactor",1,"SamplePoints",T1);
It would also be a good idea to detrend first and then find the outliers by using isoutlier.
1 个评论
Hiro Yoshino
2022-1-11
I found a better solution.
- decompose the profile into long-term, short-term and roughness profiles.
- detect outliers in roughness and replace them with other values (linear interpolation in this case)
- re-compose the new roughness back to the long and short profiles together
Here's the code:
[LT, ST, R] = trenddecomp(slip1);
plot(T1,LT,T1,ST,T1,R);
[Rnew,outlierIndices,thresholdLow,thresholdHigh] = filloutliers(R,...
"linear","quartiles","SamplePoints",T1);
slip1New = Rnew + LT + ST;
plot(T1,spring1,T1,slip1New);
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Preprocessing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!