首页 文章

如何在MATLAB中解析具有不规则长度的日期字符串的单元格数组?

提问于
浏览
1

我有日期的单元阵列作为字符串(格式:“MM / DD / YYYY”),其中该串的长度由细胞条目根据日期(例如,n = 8“变化范围为8至10,1/1 / ''2015年10月10日'和n = 10) . 我想将每个单元格数组条目转换为其对应的double作为datenum数量 . 我试过了:

id = find(~cellfun( @isempty, regexp( dateList, '/', 'tokenExtents' ) ) );

id = find(~cellfun( @isempty, strfind( dateList, '/' ) ) );

但这不对 . 提供了一个单元格数组的片段:

dateList = {'9/9/2016';
            '9/10/2016';
            '10/10/2016';
            '10/11/2016'};

2 回答

  • 0

    1)使用strsplit将每个单元格提取到3个不同的块:日,月和年

    2)使用pad使每个块的长度相同(白天和月份为2,年份为4)

    3)将字符串与[D,'/',M,'/',Y]一起加入,您就可以毫无问题地运行datenum .

    编辑1:我认为另一个答案要容易得多,我不知道datenum可以采用略有不同的字符串 .

  • 3

    所有你必须使用的是datenum,因为它将接受一个字符串的单元格数组:

    dateList = {'9/9/2016'; '9/10/2016'; '10/10/2016'; '10/11/2016'};
    id = datenum(dateList);
    

    并确认它有效:

    >> datestr(id)
    
    ans =
    
    09-Sep-2016
    10-Sep-2016
    10-Oct-2016
    11-Oct-2016
    

相关问题