从字符串的单元格数组创建日期数组

时间:2014-03-20 20:15:06

标签: matlab text-processing cell-array

我有一个字符串的单元格数组,其前几个元素如下所示:

'140322P00024000'
'140324PR0025000'
'140325P00Q26000'

其中'140322'是指2014-03-22(2014年3月22日)。我想从上面获得以下数组:

735680
735682
735683

请注意,在给定的数组中,只有前6个字母是一致的,它们是指日期。

2 个答案:

答案 0 :(得分:2)

可以使用格式'yymmdd'直接使用datenum转换前六个字符:

>> d = datenum('140322','yymmdd')
d =
      735680
>> datestr(d)
ans =
22-Mar-2014

使用cellfun执行所有操作:

>> cellfun(@(x)datenum(x(1:6),'yymmdd'),C)
ans =
      735680
      735682
      735683

答案 1 :(得分:0)

DateString = '19-May-2001';
formatIn = 'dd-mmm-yyyy';
datenum(DateString,formatIn)

取自:

http://www.mathworks.com/help/matlab/ref/datenum.html

转换为' DD-MM-YYYY'字符串应该很简单:

currentLine = cellArray{y,x};
DateString = [currentLine[3:4] '-' currentLine[5:6] '-20' currentLine[1:2]];

希望这有帮助。