Interpolate data: not monotonic
6 views (last 30 days)
Show older comments
Hey,
I am given a set of data with X and Y coordinates. The data is picturized below, with the circles corresponding to each data point. When I try to interpolate the data, to find new X coordinates for a set of Y coordinates (steps of 0.002 between minimum and maximum Y value), I get the error 'Error using griddedInterpolant. The grid vectors are not strictly monotonic increasing'. Is it because the X values constantly decrease and increase (and vice versa)?
What would be the best way to account for this so that I can still interpolate the data?
0 Comments
Accepted Answer
Star Strider
on 7 Nov 2014
You’re correct. If you want to interpolate to get more values in your situation, a bit of deception is sometimes necessary. In similar situations, I simply flip the x and y arguments to the interp1 call, and make the appropriate changes to your interpolation vector to match your y data. I would use the 'linear' method with your data.
2 Comments
Star Strider
on 7 Nov 2014
I didn’t look too closely before, but it seems that there are two identical values at about y=-0.75. The trick is to add the smallest amount necessary to the original y-value of the one with the largest original x-value to make them monotonic and make them work with your (y,x) interp1 call. (I don’t have your data, so I can’t be specific.) This is a common technique, and it doesn’t significantly affect the accuracy of the interpolation.
More Answers (0)
See Also
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!