Need a fix for interp1 error
3 次查看(过去 30 天)
显示 更早的评论
Hi,
I am trying to use interp1() function on some input data to increase the number of data points I have available to perform more precise checks, my input data is stated to 5 d.p. but ocassionally adjacent values can be identical (i.e. 0.00007, 0.00026, 0.00041, 0.00041, 0.00057...).
Any thoughts on how I still use the interp1 function without my script crashing when identical values are present?
Many Thanks,
Chris
0 个评论
采纳的回答
dpb
2022-6-27
The simplest is to use
[ux,ia]=unique(x);
vi=interp1(ux,y(ia),v);
This will use the first of the y values for each unique x; you could get more sophisticated and find those values and average them or otherwise set the interpolant value at that value.
Alternatively, I have on occasion found the duplicate locations and adjusted their positions by ux+/-2*eps(ux) to make them just far enough apart that interp1 doesn't complain. This is useful if there is a real discontinuity in the interpolant at the point and it is desired to model it as well.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multirate Signal Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!