Error when fitting polyfit curve

7 ビュー (過去 30 日間)
emily bristow
emily bristow 2020 年 12 月 12 日
編集済み: dpb 2020 年 12 月 13 日
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 日
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 件)

カテゴリ

Help Center および File ExchangeTime Series についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by