如何在MATLAB中生成连续日期字符串(如'20160801'至'20161031')
嘿,这个需求在MATLAB里处理起来挺简单的,我给你两种实用的方法,适配不同版本的MATLAB:
方法一:使用
datetime + string(推荐,MATLAB R2016b及以上) 这种是MATLAB较新版本里更现代、更灵活的日期处理方式:
% 定义起始和结束日期,指定输入格式为无分隔符的年月日 startDate = datetime('20160801', 'InputFormat', 'yyyyMMdd'); endDate = datetime('20161031', 'InputFormat', 'yyyyMMdd'); % 生成每天递增的连续日期序列 dateSeq = startDate:days(1):endDate; % 将日期序列转换成你需要的字符串格式 dateStrs = string(dateSeq, 'yyyyMMdd');
- 如果你需要字符数组而非string数组,只需要再加一句
dateStrs = char(dateStrs); - 要是想要单元格数组格式,用
dateStrs = cellstr(dateStrs);就行
方法二:兼容旧版本的
datenum + datestr 如果你的MATLAB版本比较老(比如R2016b之前),可以用传统的日期数值处理方式:
% 将起始和结束日期转换为MATLAB内部的日期数值 startNum = datenum('20160801', 'yyyymmdd'); endNum = datenum('20161031', 'yyyymmdd'); % 生成连续的日期数值序列 dateNums = startNum:1:endNum; % 将日期数值转换成指定格式的字符串 dateStrs = datestr(dateNums, 'yyyymmdd');
这里要注意格式字符串是小写的yyyymmdd,这样输出的就是无分隔符的日期字符串;如果需要单元格数组,同样用cellstr(dateStrs)转换即可。
内容的提问来源于stack exchange,提问作者bahram khazaei
相关产品推荐
相关产品推荐

