比MATLAB中的datenum更快的功能

OHL*_*ÁLÁ 5 performance matlab date

有没有人知道更快的方法将日期字符串(2010-12-12 12:21:12.123)转换为数字?

Yai*_*man 18

分析内置的Matlab函数并提取感兴趣的内部功能通常是教学的.

在你的特定情况下,

dtstr2dtnummx({'2010-12-12 12:21:12.123'},'yyyy-MM-dd HH:mm:ss')
Run Code Online (Sandbox Code Playgroud)

比以下快3倍(占30%的时间):

datenum({'2010-12-12 12:21:12.123'},'yyyy-mm-dd HH:MM:SS')
Run Code Online (Sandbox Code Playgroud)

其中dtstr2dtnummx是一个内部函数(我的Windows机器上的C:\ Program Files\Matlab\R2011a\toolbox\matlab\timefun\private\dtstr2dtnummx.mexw32).

要访问此内部函数,只需使用该addpath函数将其文件夹添加到Matlab路径,或将dtstr2dtnummx.mexw32文件复制到Matlab路径上已有的另一个文件夹.

请注意,dtstr2dtnummx和datenum之间的字符串格式不同,所以要小心!

对于那些感兴趣的人,上面的文件夹包含其他有趣的日期转换功能,所以探索和享受!

Note 5/5/2011:我现在发表了一篇文章,在http://undocumentedmatlab.com/blog/datenum-performance/上扩展了这个答案