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

9 次查看(过去 30 天)
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'."

采纳的回答

Stephen23
Stephen23 2017-5-3
编辑:Stephen23 2017-5-3
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 个评论
Nina Jensen
Nina Jensen 2017-5-3
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 2017-5-3
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by