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.
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 (, MATLAB Central File Exchange. Abgerufen .

Kompatibilität der MATLAB-Version
Erstellt mit R2021b
Kompatibel mit allen Versionen
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