How to eliminate "undercuts" of a 2d curve?
1 ビュー (過去 30 日間)
I have a curve made up of a 2d vector of points which has "undercuts". I'd like to create a new curve which eliminates these undercuts. In the figure below, I want to turn the blue curve into the red curve. I could figure out something from scratch (maybe just march along x and skip indices where x does not increase,) but I suspect this can be done with existing functions. In the end, I'd also like to end up with an even point spacing in x, but I can handle that with interp1 after the fact if needed. thanks
William Rose 2021 年 12 月 7 日
編集済み: William Rose 2021 年 12 月 7 日
Produces the plot below.
The undercutting in the plot above is a bit different than in your drawing. To get results as in your drawing, modify as follows: change the code so it only removes undercuts where y is decreasing, on the first pass. Then negate the output y-vector, to turn the output of pass 1 upside down, and run it through the filter again. Then negate the output y-vector of pass 2, to turn it right-side up. Flippng it in time is an alterative to negation, and would give the same result.