日期(日 - 月 - 年)的任何matlab函数

时间:2014-02-17 10:44:57

标签: matlab date

如何使用matlab中的datastr或其他函数从“30-4-2013 16:36:58”数据中获取日期?

它给了我奇怪的结果,因为日期早于月。

yt = datestr('“30-4-2013 16:36:58”','dd-mm-yy')

yt = 04-10-35

问题是我有大量数据< 112577x1 cell>原始数据是这样的: “4-2-2014 16:36:58” “4-2-2014 16:37:03” “4-2-2014 16:37:08”

3 个答案:

答案 0 :(得分:3)

只写30-4-2013,MATLAB不知道这是字符串还是日期?首先将其转换为序列日期编号,然后仅将其转换为日期,如下所示

>> datestr(datenum('30-4-2013 16:36:58','dd-mm-yy'))

这会将结果显示为

>> 30-Apr-2013

答案 1 :(得分:0)

Matlab语法以美国符号获取日期,即:mm-dd-yyyy。 如果你写dd-mm-yyyy,就会像30-04-2013那样得到胡言乱语。 写作30 / Apr / 2013或04-30-2013解决了问题,并提供了正确的答案。

答案 2 :(得分:0)

使用单元格数组,Bibek Subedi答案的变体将起作用:

out = datestr(datenum(C,'"dd-mm-yy HH:MM:ss"'),'dd-mm-yy');

如果需要其他输出,可以更改第二个格式字符串。顺便提一下,如果您通过读取textscan之类的文本文件来获取该单元格数组,则应该能够在没有"的情况下将其读入,方法是将它们添加为分隔符并将多个分隔符视为一个分隔符。