本帖由Matlab技术论坛原创,原帖参见 http://www.matlabsky.com/thread-524-1-9.html
matlab中表示日期时间有三种格式:
(1)日期字符串(20-oct-2008等)
有很多格式可以选择,date函数返回的就是该格式
(2)连续日期数值(7.337417231638542e+005)
以公元元年1月1日为起点计算经过的天数,now函数返回的就是该格式
(3)日期向量(1.0e+003*[2.0070 0.0100 0.0280 0.0160 0.0210 0.0016])
[年 月 日 时 分 秒],clock返回的就是该函数
一、获取当前日期时间函数
1.date:按照日期字符串格式返回当前系统日期
2.now:按照连续的日期数值格式返回当前系统时间
3.clock:按照日期向量格式返回当前系统时间
>>date,now,clock
ans =
29-Nov-2008
ans =
7.3374e+005
ans =
1.0e+003 *
2.0080 0.0110 0.0290 0.0160 0.0410 0.0259
matlab中分别使用year,month,day,hour,minute,second从上面讲到的字符串和连续型日期时间格式中提取年月日时分秒等信息
>>[year(date),year(now)]
ans =
2008 2008
注意:上面的函数是没法从向量型日期时间格式中正确读取上述信息的
>>year(clock)
ans =
5 0 0 0 0 0
二、日期格式转换
1.datestr(D,F):将任意格式的日期时间D按指定格式F转成日期字符串格式
2.datenum:将任意格式的日期时间D转成连续日期格式
3.datevec:将任意格式的日期时间D转成时间向量格式
注意上面三种时间格式之间的任意转换有很多格式选择,根据需要自己调整,具体那些格式可以看帮助系统
三、程序中应用的计时函数
在编写程序时,经常需要获知代码的执行实际时间,这就需要在程序中用到计时函数,matlab中提供了以下三种方法:
1.cputime(单位不明)
返回matlab启动以来的CPU时间,可以在程序执行钱保存当时的CPU时间,然后在程序执行结束后用cputime减去运行前保存的数值,就可以获取程序的实际运行时间
>>t0=cputime;pause(3);TimeCost=cputime-t0
2.tic/toc(单位s)
tic用在程序的开始,作用是启动一个计时器,然后在程序尾部放一个toc,表示终止计时器,并返回tic启动以来的总时s间
3.etime(单位s)
etime(t1,t2)用来计算两个日期向量t1和t2之间的时间差,结合前面讲到的clock函数也可以用来确定程序代码的运行时间
>>t0=clock;pause(3);TimeCost=etime(clock,t0)
在三种计时中建议使用第二种,相对来说最精确。当然你可以使用profiler来确定你的执行时间,并且具体到没有个命令的时间