Remove Undercuts
Version 1.0.0 (2.9 KB) by
William Rose
Remove undercuts from an x,y data set. This can make it possible to interpolate a data set that otherwise could not be.
function [xout,yout]=undercutRemoval(xin,yin,varargin)
Remove undercuts from an x,y dataset.
An undercut or uppercut (collectively, undercuts) in an x,y data set is one or more data points whose x values are less than or equal to previous x-values. In other words, an undercut is a data segment that "curves back on itself". Data sets with undercuts cannot be interpolated with interp1(). Removing the undercuts will make the data interpolate-able. The user may specify one of four methods, or not. Method 1 is the default. Figure below shows the difference between methods.
- Method 1: Remove down-going undercuts by a two-pass approach
- Method 2: Remove up-going uppercuts by a two-pass approach
- Method 3: Remove under- and uppercuts, proceeding from beginning to end
- Method 4: Remove under- and uppercuts, proceeding from end to beginning
See undercutRemovalTest.m for a demonstration of the function and example of the different methods. The demonstration program uses data in file undercutdata.txt.
I beleive the following statements are true, but have not proved them:
- Method 1 has an upward bias, i.e. mean(yout)>=mean(yin)
- Method 2 has a downward bias, i.e. mean(yout)<=mean(yin)
- Methods 3,4 are unbiased, i.e. exp.val(mean(yout))=exp.val.(mean(yin))
Cite As
William Rose (2024). Remove Undercuts (https://www.mathworks.com/matlabcentral/fileexchange/103195-remove-undercuts), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Created with
R2021b
Compatible with any release
Platform Compatibility
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.0.0 |