How do I set F.ExtrapolationMethod to 'none' in function 'griddedInterpolant'?

9 views (last 30 days)
Function: griddedInterpolant Q: How/where do I do set F.ExtrapolationMethod to 'none'?
"The behavior of griddedInterpolant has changed. All interpolation methods now support extrapolation by default. Set F.ExtrapolationMethod to 'none' to preserve the pre-R2013a behavior when F.Method is 'linear', 'cubic' or 'nearest'. Before R2013a, evaluation returned NaN values at query points outside the domain when F.Method was set to 'linear', 'cubic' or 'nearest'."

Accepted Answer

Stephen23
Stephen23 on 3 May 2017
Edited: Stephen23 on 3 May 2017
The griddedInterpolant documentation shows that the extrapolation can be specified by the last argument, after the interpolation method:
F = griddedInterpolant(___,Method,ExtrapolationMethod)
so you will need something like this:
F = griddedInterpolant(___,'linear','none')
Alternatively try changing the object property:
F.ExtrapolationMethod = 'none';
  2 Comments
Nina Jensen
Nina Jensen on 3 May 2017
I still get the error code "Error using griddedInterpolant. The grid vectors must contain unique points"
My script is:
%interpolating modelled at observed depth
for j = 1:length(time_obs)
T_subsurf_mod(:,j) = interp1(depth_act(:,j),T_ice(:,j),depth_obs(:,j));
end
T_subsurf_mod and depth_obs are both 11x8784 double and depth_act is a 201x8784 double.
Steven Lord
Steven Lord on 3 May 2017
That's a different problem, not related to the ExtrapolationMethod. That suggests to me that the values in depth_act(:, j) are not unique for some j. Set an error breakpoint and when MATLAB enters debug mode, check:
length(depth_act(:, j))
length(unique(depth_act(:, j)))
My guess is that the two lengths will be different.

Sign in to comment.

More Answers (0)

Categories

Find more on Interpolation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!