Like many newbs before me, I keep getting the "The grid vectors are not strictly monotonic increasing" error while using the interp1 function. Data set: Water quality data sampled daily at irregular times over approx 5 years. My 'x' variable is a datetime value consisting of MM/dd/yyyy HH:mm. 'Y' variable(double) = pH. 'xi'(datetime) = 15 minute interval over 5 years. What I don't understand is how to make 'x' increase monotonically when the actual data is irregular. Attached are my variables I imported. x = DateAndTime ; Y = pH at x ; xi = 15min interval from starting DateAndTime to ending DateAndTime.
Should this be treated as a 2-D scenario (x,y = date,time) or what am I missing to make this 1-D scenario work? Thank you for your time.
UPDATE:
yi = interp1(DateAndTime, pH, xi)
Error using griddedInterpolant
The grid vectors are not strictly monotonic increasing.
Error in interp1 (line 144)
F = griddedInterpolant(X,V(:,1),method);
Error in datetime/interp1 (line 109)
vq = interp1(x,v,xq,method);
issorted(DateAndTime)
ans =
1
UPDATE: Problem found in the original data. There were four data points that were entered incorrectly in the main excel file. Ie: 08/13/01 where it should have been entered 08/13/96.

댓글 수: 2

Matt J
Matt J 2016년 2월 29일
You should post the code where you call interp1 as well.
Michael McInenly
Michael McInenly 2016년 2월 29일
As in the syntax (see update) or the actual code used by MATLAB?

댓글을 달려면 로그인하십시오.

답변 (1개)

Matt J
Matt J 2016년 2월 29일
편집: Matt J 2016년 2월 29일

1 개 추천

The main problem, I would guess is that interp1 does not expect datetime input. After converting DateAndTime to something numeric, you should pre-sort it and pH correspondingly as below.
x=datenum(DateAndTime);
xi=datenum(xi);
if ~issorted(x)
[x,idx]=sort(x);
pH=pH(idx,:);
end
if any(diff(x)==0)
error 'The DateAndTime data is not strictly monotonic'
end
yi = interp1(x, pH, xi);

댓글 수: 1

Michael McInenly
Michael McInenly 2016년 2월 29일
Thanks for your help. Interp1 does allow for datetime value as long as 'xi' is the same value. I believe my problem lies in the original data set. I found four entries that were entered incorrectly. See my update above. Will reprocess my variables and try again!

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Interpolation에 대해 자세히 알아보기

제품

질문:

2016년 2월 29일

편집:

2016년 2월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by