Matlab中处理日期与时间的函数

Matlab用三种格式来表示日期与时间

(1)双精度型日期数字:一个日期型数字代表从公元0年到某一日期的的天数,例如,2008年8月26日夜时0点钟被表示为733646,而这同一天的中午12点就被表示为733646.5,也就是说任何一个时刻都可以用一个双精度型数字表示。

(2)不同形式的日期字符串:Matlab定义了28种标准日期格式的字符串。

(3)数值型的日期向量:用一个6元数组来表示一个日期时间,例如,[2008 8 26 12 5 0]表示2008年8月26日12点05分0秒;用一个3元数组来表示一个日期,例如,[2008 8 26]表示2008年8月26日。

用日期数字表示日期使计算机更容易计算,但是不直观,因此Matlab提供了许多函数来实现三种日期格式之间的转化。
(1)datestr: 实现将日期数字和日期向量转化为日期字符串,可以在Matlab命令窗口中输入help datestr来查看关于datestr的用法。
(2)datenum: 实现将日期字符串和日期向量转化为日期数字,可以在Matlab命令窗口中输入help datenum来查看关于datenum的用法。
(3)datevec: 实现将日期数字和日期字符串转化为日期向量,可以在Matlab命令窗口中输入来help datevec查看关于datevec的用法。

Matlab中其他常用的函数:
(1)clock:将当前时间和日期返回到一个(6元)数组中。
>> T = clock
T =
      2008    8    26    12     31    32.75

注:直接输出clock时,可能会以科学计数法的方式输出,

clock
ans =
  1.0e+003 *
    2.0100    0.0010    0.0280    0.0190    0.0280    0.0296

用fix(clock) 则能输出易于阅读的形式

fix(clock)
ans =
        2010           1          28          19          28          48

(2)now:将当前时间和日期以一个双精度型日期数字返回。
>> t = now
t =
  7.3365e+005
(3)date:将当前时间和日期以dd-mmm-yyyy格式的字符串返回。
>> d = date
d =
26-Aug-2008
(4)weekday:返回一个日期数字或一个日期字符串的星期及一个星期中的第几天。
>> [d,w]=weekday(‘26-Aug-2008‘)
d =
     3
w =
Tue
>> [d,w]=weekday(733646)
d =
     3
w =
Tue
(5)eomday:返回一个月的最后一天。
>> eomday(2008,2)
ans =
29
(6)calendar:对用户要求的任何一个月生一个日历并显示在命令窗口中,或将其放在一个6×7的矩阵中。
>> calendar(2008,8)
                   Aug 2008
     S     M    Tu     W    Th     F     S
     0     0     0     0     0     1     2
     3     4     5     6     7     8     9
    10    11    12    13    14    15    16
    17    18    19    20    21    22    23
    24    25    26    27    28    29    30
    31     0     0     0     0     0     0
>> c=calendar(2008,8)
c =
     0     0     0     0     0     1     2
     3     4     5     6     7     8     9
    10    11    12    13    14    15    16
    17    18    19    20    21    22    23
    24    25    26    27    28    29    30
    31     0     0     0     0     0     0
(7)tic,toc:函数tic和toc被用来对一组Matlab运算进行计时。Tic启动一个秒表,toc停止这个秒表并计算出所经历的时间。
>> tic;plot(rand(50,5));toc
Elapsed time is 3.302510 seconds.
(8)cputime:函数cputime返回用秒表示的、自从当前的Matlab周期启动之后Matlab所占用的CPU时间。
(9)datetick:用来自动完成对数据进行图形显示并且用日期或时间字符串来作坐标的标签。
>> y=[1998 1998 1999*ones(1,12)];
>> m=[11 12 (1:12)];
>> s=[1.1 1.3 1.2 1.4 1.6 1.5 1.7 1.6 1.8 1.3 1.9 1.7 1.6 1.95];
>> bar(datenum(y,m,1),s)
>> datetick(‘x‘,‘mmmyy‘)
>> ylabel(‘$ Million‘)
>> title(‘Figure 15.2:Monthly Sales‘)



常用的日期操作函数

datestr(d,f) 将日期数字转换为字符串
       datenum(str,f) 将字符串转换为日期数字
       datevec(str) 日期字符串转换向量
       weekday(d) 计算星期数
       eomday(yr,mth) 计算指定月份最后一天
       calendar(str) 返回日历矩阵
        clock 当前日期和时间的日期向量
       date 当前日期字符串
       now 当前日期和时间的序列数



matlab中如何获取当前日期时间函数的具体应用如下:

一、date ,now,clock

1.date:按照日期字符串格式返回当前系统日期
    2.now:按照连续的日期数值格式返回当前系统时间
    3.clock:按照日期向量格式返回当前系统时间
>> date,now,clock

ans =

09-Apr-2011
    ans =

7.3460e+005
   ans =

1.0e+003 *

2.0110    0.0040    0.0090    0.0170    0.0430    0.0470

二、year,month,day,hour,minute,second
matlab中分别使用year,month,day,hour,minute,second从上面讲到的字符串和连续型日期时间格式中提取年月日时分秒等信息
>>[year(date),year(now)]
ans =
       2011        2011
注意:上面的函数是没法从向量型日期时间格式中正确读取上述信息的
>>year(clock)
ans =
    5     0     0     0     0     0
  三、Matlab中处理日期与时间的函数详解

Matlab用三种格式来表示日期与时间
(1)双精度型日期数字:一个日期型数字代表从公元0年到某一日期的的天数,例如,2008年8月26日夜时0点钟被表示为733646,而这同一天的中午12点就被表示为733646.5,也就是说任何一个时刻都可以用一个双精度型数字表示。
(2)不同形式的日期字符串:Matlab定义了28种标准日期格式的字符串。
(3)数值型的日期向量:用一个6元数组来表示一个日期时间,例如,[2008 8 26 12 5 0]表示2008年8月26日12点05分0秒;用一个3元数组来表示一个日期,例如,[2008 8 26]表示2008年8月26日。
用日期数字表示日期使计算机更容易计算,但是不直观,因此Matlab提供了许多函数来实现三种日期格式之间的转化。
(1)datestr: 实现将日期数字和日期向量转化为日期字符串,可以在Matlab命令窗口中输入help datestr来查看关于datestr的用法。
(2)datenum: 实现将日期字符串和日期向量转化为日期数字,可以在Matlab命令窗口中输入help datenum来查看关于datenum的用法。
(3)datevec: 实现将日期数字和日期字符串转化为日期向量,可以在Matlab命令窗口中输入来help datevec查看关于datevec的用法。
Matlab中其他常用的函数:
(1)clock:将当前时间和日期返回到一个(6元)数组中。
>> T = clock
T =
      2008    8    26    12     31    32.75

注:直接输出clock时,可能会以科学计数法的方式输出,

clock
ans =
  1.0e+003 *
    2.0100    0.0010    0.0280    0.0190    0.0280    0.0296

用fix(clock) 则能输出易于阅读的形式

fix(clock)
ans =
        2010           1          28          19          28          48

(2)now:将当前时间和日期以一个双精度型日期数字返回。
>> t = now
t =
  7.3365e+005
(3)date:将当前时间和日期以dd-mmm-yyyy格式的字符串返回。
>> d = date
d =
26-Aug-2008
(4)weekday:返回一个日期数字或一个日期字符串的星期及一个星期中的第几天。
>> [d,w]=weekday(‘26-Aug-2008‘)
d =
     3
w =
Tue
>> [d,w]=weekday(733646)
d =
     3
w =
Tue
(5)eomday:返回一个月的最后一天。
>> eomday(2008,2)
ans =
29
(6)calendar:对用户要求的任何一个月生一个日历并显示在命令窗口中,或将其放在一个6×7的矩阵中。
>> calendar(2008,8)
                   Aug 2008
     S     M    Tu     W    Th     F     S
     0     0     0     0     0     1     2
     3     4     5     6     7     8     9
    10    11    12    13    14    15    16
    17    18    19    20    21    22    23
    24    25    26    27    28    29    30
    31     0     0     0     0     0     0
>> c=calendar(2008,8)
c =
     0     0     0     0     0     1     2
     3     4     5     6     7     8     9
    10    11    12    13    14    15    16
    17    18    19    20    21    22    23
    24    25    26    27    28    29    30
    31     0     0     0     0     0     0
(7)tic,toc:函数tic和toc被用来对一组Matlab运算进行计时。Tic启动一个秒表,toc停止这个秒表并计算出所经历的时间。
>> tic;plot(rand(50,5));toc
Elapsed time is 3.302510 seconds.
(8)cputime:函数cputime返回用秒表示的、自从当前的Matlab周期启动之后Matlab所占用的CPU时间。
(9)datetick:用来自动完成对数据进行图形显示并且用日期或时间字符串来作坐标的标签。
>> y=[1998 1998 1999*ones(1,12)];
>> m=[11 12 (1:12)];
>> s=[1.1 1.3 1.2 1.4 1.6 1.5 1.7 1.6 1.8 1.3 1.9 1.7 1.6 1.95];
>> bar(datenum(y,m,1),s)
>> datetick(‘x‘,‘mmmyy‘)
>> ylabel(‘$ Million‘)
>> title(‘Figure 15.2:Monthly Sales‘)

http://eelab.tsinghua.edu.cn/czzheng/blog/10-01/184048_13d5c.html

1.now 返回当前的日期值(这个数的整数部分表示从公元0年1月1日到该日的天数,小数部分则表示具体的时刻)
eg.
t=now
t =7.3354e+005
2.datestr 日期转换成字符形式
调用格式 datestr(date,dateform) date为要转换的日期值,dateform为日期格式参数(具体参数值可通过 help datestr查看帮助)
dateform参数说明
      DATEFORM number    DATEFORM string          Example
     ===========================================================================
        0              ‘dd-mmm-yyyy HH:MM:SS‘    01-Mar-2000 15:45:17
        1              ‘dd-mmm-yyyy‘             01-Mar-2000
        2              ‘mm/dd/yy‘                03/01/00     
        3              ‘mmm‘                     Mar          
        4              ‘m‘                       M            
        5              ‘mm‘                      03            
        6              ‘mm/dd‘                   03/01        
        7              ‘dd‘                      01            
        8              ‘ddd‘                     Wed          
        9              ‘d‘                       W            
       10              ‘yyyy‘                    2000         
       11              ‘yy‘                      00           
       12              ‘mmmyy‘                   Mar00        
       13              ‘HH:MM:SS‘                15:45:17     
       14              ‘HH:MM:SS PM‘              3:45:17 PM
       15              ‘HH:MM‘                   15:45        
       16              ‘HH:MM PM‘                 3:45 PM     
       17              ‘QQ-YY‘                   Q1-96        
       18              ‘QQ‘                      Q1           
       19              ‘dd/mm‘                   01/03        
       20              ‘dd/mm/yy‘                01/03/00     
       21              ‘mmm.dd,yyyy HH:MM:SS‘    Mar.01,2000 15:45:17
       22              ‘mmm.dd,yyyy‘             Mar.01,2000
       23              ‘mm/dd/yyyy‘              03/01/2000
       24              ‘dd/mm/yyyy‘              01/03/2000
       25              ‘yy/mm/dd‘                00/03/01
       26              ‘yyyy/mm/dd‘              2000/03/01
       27              ‘QQ-YYYY‘                 Q1-1996        
       28              ‘mmmyyyy‘                 Mar2000        
       29 (ISO 8601) ‘yyyy-mm-dd‘              2000-03-01
       30 (ISO 8601) ‘yyyymmddTHHMMSS‘         20000301T154517
       31              ‘yyyy-mm-dd HH:MM:SS‘     2000-03-01 15:45:17eg.
>> t=now;datestr(t,0)ans =09-May-2008 21:07:233.date将字符串转换成日期值
调用语法:date(year,month,day)
          datenum(year,month,day,hour,minute,second)
eg.>> t=now;datestr(t,0)ans =09-May-2008 21:07:23>> datenum(ans)
ans =7.3354e+005>>4.datevec将datestr中指定的格式日期字符转换成包含日期分量的数值向量
eg.
>>c=datevec(‘09-May-2008 21:07:23‘)c =         2008            5            9           21            7           23
5.weekday 可从一个日期值或字符串中找出具体的日子和星期。
eg.
>> [d,w]=weekday( 7.3354e+005)d =      2
w =Mon>>[d,w]=weekday(‘21-Dec-2008‘)d =      1
w =Sun6.eomday 返回任何一个月最后一天是几号
调用语法:eomday(year,month) 因为闰年的存在故需要year这个参数。
eg.>> eomday(2008,2)ans =     29>> eomday(2007,2)ans =     287.calendar 生成指定月份的日历。
eg
>> calendar(date)
                    May 2008
      S      M     Tu      W     Th      F      S
      0      0      0      0      1      2      3
      4      5      6      7      8      9     10
     11     12     13     14     15     16     17
     18     19     20     21     22     23     24
     25     26     27     28     29     30     31
      0      0      0      0      0      0      0
>> calendar(2008,5)
                    May 2008
      S      M     Tu      W     Th      F      S
      0      0      0      0      1      2      3
      4      5      6      7      8      9     10
     11     12     13     14     15     16     17
     18     19     20     21     22     23     24
     25     26     27     28     29     30     31
      0      0      0      0      0      0      0>>
补充:date返回当天日期的字符串
eg.
>> dateans =09-May-20088.tic ,toc 两个结合使用可计算一组matlab操作指令的执行所需时间
eg.
>> tic; plot(rand(500,5));toc
Elapsed time is 0.078000 seconds.
另外Matlab还提供了cputime和etime(具体使用方法可看帮助文档),用来计算一次运算所占cpu时间.
eg.
>>t0=cputime;myoperation;cputime-t0
ans=0.1400
>>t1=clock;myoperation;etime(clock,t1)
ans=11.2800
注:myoperation为用户自定义脚本文件
>> t0=cputimet0 =    53.8125>> t1=cputimet1 =    54.0313>> deltaT=t1-t0deltaT =     0.2188
>> t1=clockt1 =1.0e+003 *     2.0080     0.0050     0.0090     0.0210     0.0460     0.0254>> deltaT=etime(t1,t0)deltaT =     9.9060>>
9.datetick 设一个坐标为时间标签eg.
>> t=(1900:10:1990)‘;
>> p=[100 200 150 350 200 400 500 100 30 120];
>> plot(datenum(t,1,1),p);
>> datetick(‘x‘,‘yyyy‘)
>> title(‘test time tip‘)

原文地址:https://www.cnblogs.com/caizhao/p/8487947.html

时间: 2024-10-07 05:58:56

Matlab中处理日期与时间的函数的相关文章

PHP中的日期和时间

日期和时间    1.UNIX时间戳        以32位整数表示的格林威治标准时间        这个UNIX时间戳整数是从1970年1月1日0时0分0秒(计算机元年)到现在的秒数        作用:方便我们计算使用(参与计算)    2.在PHP中获取日期和时间        time() 返回当前的Unix时间戳        getdate() 取得日期/时间信息    返回值是一个关联数组        gettimeofday()获取当前时间        date_sunris

在PHP中获取日期和时间

PHP提供了多种获取时间和日期的函数,除了通过time()函数获取当前的UNIX时间戳外,调用getdate()函数确定当前时间,通过gettimeofday()函数获取某一天中的具体时间.此外,在PHP中还可以通过date_sunrise()和date_sunset两个函数,获取某地点某天的日出和日落时间. ①调用getdate()函数取得日期/时间信息 getdate()函数返回一个时间戳组成的关键数组,参数需要一个可选的UNIX时间戳.如果没有给出时间戳,则认为是当前本地时间.总共返回11

VB6.0中,日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)

VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 代码如下: 文本框txtStopTime1 时间框DTStopTime1 格式3 - dtpCustom  HH:mm:ss Private Sub Form_Load()       txtStopTime1.ZOrder       DTStopTime1.Top = txtStopTime1.Top       DTStopTime1.Left = txtStopTi

也谈matlab中读取视频的一个重要函数mmreader

也谈matlab中读取视频的一个重要函数mmreader 在matlab中输入help mmreader来查阅一下该函数,有如下信息: MMREADER Create a multimedia reader object.     OBJ = MMREADER(FILENAME) constructs a multimedia reader object, OBJ, that    can read in video data from a multimedia file.  FILENAME

Matlab中如何将(自定义)函数作为参数传递给另一个函数

Matlab中如何将(自定义)函数作为参数传递给另一个函数 假如我们编写了一个积分通用程序,想使它更具有通用性,那么可以把被积函数也作为一个参数.在c/c++中,可以使用函数指针来实现上边的功能,在matlab中如何实现呢?使用函数句柄——这时类似于函数指针的一项功能.假如我们现在已经编写了一个辛普森方法积分的函数如下,我们要把函数作为参数传给它(当然啦,matlab早已经提供给我们非常牛x的积分函数了,这里只是个例子而已):function g=myintegrate(f,N,a,b)%int

MATLAB中白噪声的WGN和AWGN函数的使用

MATLAB中白噪声的WGN和AWGN函数的使用如下: MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一 信号中加入高斯白噪声. 1. WGN:产生高斯白噪声y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度.y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗.y = wgn(m,n,p,imp,state) 重置RANDN的状态. 在

java8中处理日期和时间

Java 8 中如何处理日期和时间 1. 在 Java 8 中获取今天的日期 Java 8 中的 LocalDate 用于表示当天日期.和 java.util.Date 不同,它只有日期,不包含时间.当你仅需要表示日期时就用这个类. LocalDate now = LocalDate.now(); System.out.println(now); //结果 2018-06-20 2. 在 Java 8 中获取年.月.日信息 LocalDate 类提供了获取年.月.日的快捷方法,其实例还包含很多其

日期和时间处理函数

这篇文章要总结的是SQL在日期和时间处理方面的函数,总结起来,主要有以下这些函数在我们的开发过程中使用得比较多的. 1,获取当前系统时间 2,DATEADD函数 3,DATEDIFF函数 4,DATEPART函数 5,YEAR,MONTH和DAY函数 6,DATENAME函数 7,ISDATE函数 获取当前系统时间 获取当前系统时间的函数有很多,但是最常用就两个,CURRENT_TIMESTAMP和GETDATE.它们返回的日期和时间格式完全相同,但是因为CURRENT_TIMESTAMP是标准

java中获取日期和时间的方法总结

1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下:  要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); date.getTime() ; 还有一种方式,使用 System.currentTimeMillis() ;都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数 一.获取当前时间,   格式为:   yyyy-mm-dd   hh-mm