Matlab Coder error : converting datetime Format error

1 次查看(过去 30 天)
I have a problem about Matlab Coder... Actually, The code is correctly run in Matlab, but I want to use Matlab coder. Coder makes error, when I want to change datetime Format. For example, variable DateTime is type of datetime, 2017-05-01 00:00, 2017-05-01 00:15, ...... 2017-09-30 23:45 and I want to change it only year and date like, 20170501, 20170501, ...... , 20170930. That's why I make the code in matlab, d1 = datetime(DateTime, 'Format', 'uuuuMMdd');
DateTime = table2array(datatable(1:row/4,1)); % 2017-05-01 00:00, 2017-05-01 00:15, ...... 2017-09-30 23:45 d1 = datetime(DateTime, 'Format', 'uuuuMMdd'); % 20170501, 20170501, ...... , 20170930
In Matlab, it works correctly. But Matlab Coder can't call the function. I want to know how I can solve this problem...TT

采纳的回答

VBBV
VBBV 2022-12-12
Use the dateType argument for the datetime function
d1 = datetime(DateTime, 'dateType', 'yyyymmdd'); % use the dateType argument
instead of
d1 = datetime(DateTime, 'Format', 'uuuuMMdd'); % 20170501, 20170501, ...... , 20170930
  4 个评论
YunJung Choi
YunJung Choi 2022-12-13
In the table, there is datetime type. That's why I use table2array... Because value of type 'datetime' in the table, it can't be convertible to 'cell'.
I have a problem only in Matlab Coder... I want to convert from matlab code to c code. Actually my original code has no problem in matlab, but it happens only when I use Matlab Coder codegen...TT Is the correct solution for Matlab Coder?? TT
VBBV
VBBV 2022-12-14
编辑:VBBV 2022-12-14
Ok, for some reason, Matlab coder doesnt support datetime functions
D = datetime({'2017-05-01 00:00', '2017-05-01 00:15'})
D = 1×2 datetime array
01-May-2017 00:00:00 01-May-2017 00:15:00
T = table(D,'VariableNames',{'D'})
T = table
D __________________________________________ 01-May-2017 00:00:00 01-May-2017 00:15:00
DateTime = table2array(T);
d1 = datetime(DateTime, 'Format', 'uuuuMMdd')
d1 = 1×2 datetime array
20170501 20170501

请先登录,再进行评论。

更多回答(1 个)

C B
C B 2022-12-12
编辑:C B 2022-12-12
Can you try this once
d1 = datestr(datetime, 'yyyymmdd')
d1 = '20221212'

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by