interp2 error: The grid vectors must be strictly monotonically increasing.
19 views (last 30 days)
Show older comments
The error is that "the grid vector must be strictly monotonically increasing" I am confused by this, because the vector a1 and b1 is absolutely monotonic.
%% plot segment1 int=1; % interval of mesh method='nearest'; s1x=Segment1new(:,3); s1y=Segment1new(:,4); s1z=Segment1new(:,5);
mins1x=ceil(min(s1x)); maxs1x=fix(max(s1x)); mins1y=ceil(min(s1y)); maxs1y=fix(max(s1y));
a1=(mins1x:int:maxs1x); b1=(mins1y:int:maxs1y);
[S1X,S1Y]=meshgrid(a1,b1); %produce mesh grid S1Z=interp2(s1x,s1y,s1z,S1X,S1Y,method);%interpolate ZZ mesh(S1X,S1Y,S1Z) hold on
0 Comments
Answers (1)
Steven Lord
on 10 May 2017
The query points do not need to be strictly monotonically increasing. The points at which the data to be interpolated is specified do need to be strictly monotonically increasing.
% Generate sample data
[Xmono, Ymono] = meshgrid(-3:3, -3:3);
Xnon = Xmono(randperm(7), randperm(7));
Ynon = Ymono(randperm(7), randperm(7));
V = Xmono + Ymono;
% Interpolate using the monotonically increasing X and Y data as the first two inputs
Vq1Succeeds = interp2(Xmono, Ymono, V, Xnon, Ynon);
szVq1 = size(Vq1Succeeds)
% Interpolate using the non-monotonically increasing X and Y data as the first two inputs
Vq2Fails = interp2(Xnon, Ynon, V, Xmono, Ymono);
szVq2 = size(Vq2Fails)
To interpolate scattered data (data known at locations that don't lie on a grid) use scatteredInterpolant instead.
0 Comments
See Also
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!