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

Antworten (3)

Jan
Jan am 16 Apr. 2015

0 Stimmen

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)?
Star Strider
Star Strider am 16 Apr. 2015

0 Stimmen

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 Kommentar

Star Strider
Star Strider am 17 Apr. 2015
@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.

Melden Sie sich an, um zu kommentieren.

Vittoria D'Avino
Vittoria D'Avino am 17 Apr. 2015

0 Stimmen

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 Kommentar

John D'Errico
John D'Errico am 17 Apr. 2015
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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 16 Apr. 2015

Kommentiert:

am 17 Apr. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by