MATLAB:Datenum格式不匹配
我正在使用Matlab2010a将字符串表转换为datenum对象MATLAB:Datenum格式不匹配,matlab,Matlab,我正在使用Matlab2010a将字符串表转换为datenum对象 >> datenum('01-Jan-11', 'dd-mmm-yy') ??? Error using ==> datenum at 182 DATENUM failed. Caused by: Error using ==> dtstr2dtnummx Failed on converting date string to date number. >> datenum
>> datenum('01-Jan-11', 'dd-mmm-yy')
??? Error using ==> datenum at 182
DATENUM failed.
Caused by:
Error using ==> dtstr2dtnummx
Failed on converting date string to date number.
>> datenum('02-Jan-11', 'dd-mmm-yy')
ans =
734505
>> datenum('03-Jan-11', 'dd-mmm-yy')
??? Error using ==> datenum at 182
DATENUM failed.
Caused by:
Error using ==> dtstr2dtnummx
Failed on converting date string to date number.
>> datenum('04-Jan-11', 'dd-mmm-yy')
ans =
734507
我无法理解这个错误的原因。有人能详细说明一下吗?我在matlab2010上已经看到了这个问题,但在Matlab2015上没有发现。这听起来是个老毛病 如果您再次调用datenum('01-Jan-11','dd-mmm-yy'),您将看到第二次尝试即使第一次不起作用,这也会起作用 解决这个问题的唯一方法是使用try-catch语句,然后在catch处再次使用datenum。这在我的案件中非常有效 试着这样做 试一试 日期编号(“2011年1月1日”、“年月日”); 抓住 日期编号(“2011年1月1日”、“年月日”); 结束
这将适用于您在我的例子中,使用MATLAB R2014a和Win7,
datenum('01-Jan-11','dd-mmm-yy')
工作并返回734504
。您可以通过键入doc datenum
查看R2010a的文档,并检查其中是否有不同之处。文档说明:使用默认透视年将日期字符串转换为序列日期号:n=datenum('12-jun-17','dd-mmm-yy')n=736858I我已使用MATLAB R2013a和相同的系统进行了尝试。它工作得非常好。dtstr2dtnummx
不幸地是一个MEX函数。这可能只是实际MEX代码中的一个bug,除非升级MATLAB版本,否则无法修复它。@rayryeng:谢谢。:)