Getting error while using interpolation function

9 views (last 30 days)
While using interpoltaion function I am getting the follwing error.
*Undefined function 'interpl' for input arguments of type 'double'.
Error in interpolation (line 16) G=interpl(a,d,x); *
I wrote the code like this
t=[1:10]
a=[0.1:0.1:1]
d=[20:30]
x=0.45
Y=interp1(a,t,x);
G=interpl(a,d,x);
The code is working for 'Y', but if I added 'G' it is showing error.
What is wrong with my code?
Thanks

Accepted Answer

John D'Errico
John D'Errico on 18 Feb 2015
Edited: John D'Errico on 18 Feb 2015
Whats wrong? That you can't type? :)
I copied a piece of the error message that you got.
c = 'interpl'
c =
interpl
upper(c)
ans =
INTERPL
See that in the second call, you typed interpl, although you meant interp1. In fact, as soon as I saw the error, I knew this is what you had done. This is one of those mistakes you make once, then immediately know what to look for in the future, but it is difficult to debug.
  4 Comments
R7 DR
R7 DR on 18 Feb 2015
Now the error message is like this
Error using griddedInterpolant The grid vectors do not define a grid of points that match the given values.
Error in interp1 (line 183)
F = griddedInterpolant(X,V,method);
Error in interpolation (line 16)
G=interp1(a,d,x);
John D'Errico
John D'Errico on 20 Feb 2015
Edited: John D'Errico on 20 Feb 2015
The original error you got was ABSOLUTELY due to exactly what I said it was.
While you think you typed it properly, you did not. The error message that MATLAB gave repeated the name of the function you used.
"*Undefined function 'interpl' for input arguments of type 'double'."
What looks like a 1 in the function name is indeed a lower case L. MATLAB cannot lie.
Once you typed it properly, then a second error happens. The second error happens because a and t have 10 elements, so the first call works. But then the vector d has 11 elements.
You cannot form an interpolation mapping between the vectors a and d when a and d have a different number of elements. That would make no sense, so interp1 generates the error.
Had you used
d = 21:30;
the second call to interp1 (if spelled properly) would work with no problem.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!