MATLAB: Error using griddedInterpolant. The grid vectors must contain unique points

interpolation

Hi All,
Trying to plot two different datasets with a uniform x-axis I ran through a loess filter. My code for the interp/plotting worked on one dataset, but not on another. Can't seem to figure out the issue here.
The one that worked:
% Interpolation Method

% y1 = first dataset

% yn = nth dataset

% yn = interp1(x,y,std x component,'[insert optional interp method]')

% repeat for nth datasets

y1 = interp1(x87Age,y87C,t_comp87);
y2 = interp1(x41Age,y41C,t_comp41);
plot(x87Age,y87C,'o');
hold on
plot(x41Age,y41C,'o');
plot(t_comp87,y1);
plot(t_comp41,y2);
The one that didn't work
% Interpolation Method
% y1 = first dataset
% yn = nth dataset
% yn = interp1(x,y,std x component,'[insert optional interp method]')
% repeat for nth datasets
y1 = interp1(x87Age,y87C,t_comp87);
y2 = interp1(x79Age,y79C,t_comp79);
plot(x87Age,y87C,'o');
hold on
plot(x79Age,y79C,'o');
plot(t_comp87,y1);
plot(t_comp79,y2);
Any ideas???

Best Answer

This error generally occurs when there are duplicate points in the input to 'interp1'.
You can remove duplicates using 'unique' function.
For Example,
[x, index] = unique(x);
yi = interp1(x, y(index), xi);
Please apply the above logic to your code and see if it resolves the issue.