Alternative Methods for Interpolation or Solutions of Interpolation Errors

Hi everbody.
Sometimes i give an error when making interpolation process for ex. "The values of X should be distinct error".
I have an exam this tuesday which will be done by matlab. And i am afraid of interpolation errors.
What are the alternative methods for interpolation or solutions of errors like "The values of X should be distinct" etc.?
Thanks a lot.

回答(2 个)

The available techniques depend a great deal upon whether the Y corresponding to the duplicate X are the same or different.
If the Y values are the same then the major technique is to unique() the X values and take the corresponding Y values. One way of doing that is to use
XY = [X(:), Y(:)];
uXY = unique(XY,'rows');
uX = uXY(:,1);
uY = uXY(:,2);
interp1(uX, uY, locations_to_interpolate_at)
But typically one would instead construct the X values to be unique.
What are some circumstances under which you have had difficulty with duplicate X values?
Thanks Walter Roberson for your answer.
For ex. my X values = [8.79 9.42 10.05 ...], these values are increasing but through to 900. column, X values decreasing to 0. My Y values haven't got standart tendency, for ex. [970 971 2394 972 ...]. When i use the interp1 command for ex. interp1(X,Y,25.45) etc, i encounter this error. I have some duplicate values of X but not Y.

3 个评论

That is a different matter. Your X values can only grow continually or decrease continually; if your values grow and then decrease then you should not be using interp1().
If you have duplicate X but not duplicate Y then that implies that there is some X for which you have two different Y values. Given only the X value, how is the algorithm to know which of the two different Y values is intended?
interp1() should only be used for the case where the X are unique. It does not matter to interp1() if the Y are unique.
If you have a situation where the X grow until a particular time and then decrease, then you should be splitting the interpolation at the point the decrease starts, and you should be using the one that is appropriate for the time period you are in, rather than trying to do everything in one interpolation command.
Thank you Walter Roberson. If i will encounter like this interpolation errors in exam or other projects, i will use your splitting methods.
Please do not add answers every time you wish to comment. Use the COMMENTS!!!!!!!!

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Interpolation 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by