interp1 problem with Matlab2012

Hi,
I have problem with this function but only with the v2012.
"Error using griddedInterpolant The coordinates of the input points must be finite values; Inf and NaN are not permitted."
Somebody know about this problem according to a Matlab version? The same package of function run well under other version!
This is part of my function:
volx = interp1([stor(i, 1); inf], [v; 0], x, 'linear', 1);
Thanks a lot

Answers (3)

Jan
Jan on 16 Apr 2015
The error message seems to be fair: How can the X-value of a signal equal Inf? It is meaningless to set the corresponding Y-value to zero. What do you expect as output value apart from the point stor(i)?
There is not enough information to be certain (and I don’t have access to R2012 on this machine), but it looks as though you want to extrapolate. The problem is that you are only dealing with a single scalar value in ‘stor’ (and possibly also ‘v’), so that will be a problem. Be sure ‘stor’ and ‘v’ are vectors of the same size, or your interpolation/extrapolation will fail.
Assuming that ‘x’ includes the value you want to extrapolate (that it is one element longer than ‘stor’ and ‘v’), use the 'extrap' option:
volx = interp1(stor(:, 1), v, x, 'linear', 'extrap');
See if that works.

1 Comment

@Vittoria — I do not understand the problem you want to solve. Please post some representative data, a detailed description of the problem, and what you want to do.

Sign in to comment.

Vittoria D'Avino
Vittoria D'Avino on 17 Apr 2015
Thanks a lot. I tried but I have the same problem :-( I try to explain the problem below:
Stor is a vector of 2 coloumn and finite number of rows (dose and volume for each patient 'i') x vector is shorter than raw dimension of 'stor' because my problem is that 'stor' have not the exact values of volume at fixed dose value.
I tried to substitute inf with 1 and I solved
volx = interp1([stor(i, 1); inf], [v; 0], x, 'linear', 1);
volx = interp1([stor(i, 1); 1], [v; 0], x, 'linear', 1);
In a second and similar function the problem is inverse: I have to extrapolate the value of dose at fixed value of volume but the similar solution is wrong...uff
dosex = interp1([v; inf], [stor(i, 1); 0], x, 'linear', MaxD(ddbsi));
I hope to be clear and sintetic.
Thanks a lot

1 Comment

Please don't add answers for every comment that you make. There is a button to add a comment to any answer, or to your own question.

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Asked:

on 16 Apr 2015

Commented:

on 17 Apr 2015

Community Treasure Hunt

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

Start Hunting!