Remove Undercuts

バージョン 1.0.0 (2.9 KB) 作成者: 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.
ダウンロード: 5
更新 2021/12/9


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


William Rose (2024). Remove Undercuts (, MATLAB Central File Exchange. 取得済み .

MATLAB リリースの互換性
作成: R2021b
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
バージョン 公開済み リリース ノート