Remove Undercuts

Remove undercuts from an x,y data set. This can make it possible to interpolate a data set that otherwise could not be.
5 Downloads
Aktualisiert 9. Dez 2021

Lizenz anzeigen

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))

Zitieren als

William Rose (2024). Remove Undercuts (https://www.mathworks.com/matlabcentral/fileexchange/103195-remove-undercuts), MATLAB Central File Exchange. Abgerufen.

Kompatibilität der MATLAB-Version
Erstellt mit R2021b
Kompatibel mit allen Versionen
Plattform-Kompatibilität
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Veröffentlicht Versionshinweise
1.0.0