Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB:Datenum格式不匹配_Matlab - Fatal编程技术网

MATLAB: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

我正在使用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('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:谢谢。:)