MATLAB Answers

Getting error while using interpolation function

45 views (last 30 days)
R7 DR
R7 DR on 18 Feb 2015
Edited: John D'Errico on 20 Feb 2015
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

  0 Comments

Sign in to comment.

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

Show 1 older comment
R7 DR
R7 DR on 18 Feb 2015
Hi
Thanks for the reply.
I used the same ''interp1'' for both Y and G.
I checked it again.
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
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)

Categories


Translated by