为啥我的分类数组时间中的年份没有在 Matlab 中正确转换?
Posted
技术标签:
【中文标题】为啥我的分类数组时间中的年份没有在 Matlab 中正确转换?【英文标题】:Why isn't the year in my categorical array time properly converted in Matlab?为什么我的分类数组时间中的年份没有在 Matlab 中正确转换? 【发布时间】:2020-02-25 11:31:24 【问题描述】:我在 Matlab 中有以下分类数组
time(1:3)
ans =
3×1 categorical array
13-10-19 00:03
13-10-19 00:08
13-10-19 00:12
我想将它用作时间序列的 x 轴,为此我需要它作为时间字符串,所以我所做的如下
string(time(1:3))
ans =
3×1 string array
"13-10-19 00:03"
"13-10-19 00:08"
"13-10-19 00:12"
如果我使用 datetime
或 datestr
转换它,年份似乎丢失或错误转换
datetime(string(time(1:3)))
ans =
3×1 datetime array
19-Oct-0013 00:03:00
19-Oct-0013 00:08:00
19-Oct-0013 00:12:00
datestr(string(time(1:3)))
ans =
3×20 char array
'19-Oct-0013 00:03:00'
'19-Oct-0013 00:08:00'
'19-Oct-0013 00:12:00'
这是为什么?如何正确转换年份?
提前致谢!
【问题讨论】:
【参考方案1】:你必须指定InputFormat:
datetime(string(time(1:3)),'InputFormat','dd-MM-yy HH:mm')
或
datetime(string(time(1:3)),'InputFormat','yy-MM-d HH:mm')
如果在您的示例中是 2013 年。从日期看不太清楚。
【讨论】:
以上是关于为啥我的分类数组时间中的年份没有在 Matlab 中正确转换?的主要内容,如果未能解决你的问题,请参考以下文章