【发布时间】:2017-10-20 00:43:54
【问题描述】:
我无法找到一种方法来识别 MATLAB 中字符串的日期格式并将所有这些格式设置为相同的格式。我有以下单元格数组:
list = {'01-Sep-1882'; ...
'01-Aug-1895'; ...
'04/01/1912'; ...
'Tue, 05/28/46'; ...
'Tue, 03/10/53'; ...
'06/20/58'; ...
'Thu, 09/20/73'; ...
'Fri, 08/15/75'; ...
'Sun, 12/01/1996'};
如果我选择datenum(list),则会出现错误消息,因为所有行的日期格式都不相同。你能想出一种方法来规避这个问题吗?
【问题讨论】:
-
list是元胞数组吗? -
嗨@rayryeng,是的。格式为:list = '12/15/68' 'Sun, 01/15/89'...
-
执行此操作的一种方法是循环遍历单元格的每个元素并单独使用
datenum。但是,如果您在元胞数组中以字母形式以月份的日期开头的任何元素上使用datenum:Tue, Thu, Fri等,然后是数字形式的日期,MATLAB 目前没有内置格式说明符寻找这种日期,所以它会在这里给你一个错误。丢弃这些并仅依赖日期的数字形式是否安全? -
与@rayryeng 一起使用,最简单(可能也是最不优雅)的解决方案可能是简单地循环单元格数组并将各个日期数字存储到新的数字列表中。这应该让 numList 成为一个很好的同构数值数组,以便您随意处理。
-
非常感谢您的建议!