Trying to plot a polynomial curve onto my time series but keeps coming up with 'Inputs must be floats, namely single or double'
This is the code I've got:
% plot time series
X = Months;
X = categorical({'March','April','May','June','July','August','November'});
M = reordercats(X,{'March','April','May','June','July','August','November'});
Y = AverageDO;
plot(M,Y,'*');
p = polyfit(M,Y,1);
The excel sheet attached is the timeseries data.

 채택된 답변

dpb
dpb 2020년 12월 12일
편집: dpb 2020년 12월 13일

0 개 추천

Error is exactly what it says--you wrote:
X = categorical({'March','April','May','June','July','August','November'});
M = reordercats(X,{'March','April','May','June','July','August','November'});
so M is a categorical variable which polyfit is not equipped to handle.
Use
>> M=month(datetime(string(X),'inputformat','MMM'))
M =
3 4 5 6 7 8 11
>>
or some other way to generate the months as numeric.
I THINK some of the Statistics and/or Curve Fitting toolbox routines may know how to handle categorical variables but I don't recall for absolute sure otomh.

추가 답변 (0개)

카테고리

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

질문:

2020년 12월 12일

편집:

dpb
2020년 12월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by