- Matlab 教程
- MATLAB – 首页
- MATLAB – 概述
- MATLAB – 特性
- MATLAB – 环境设置
- MATLAB – 编辑器
- MATLAB – 在线版
- MATLAB – 工作区
- MATLAB – 语法
- MATLAB – 变量
- MATLAB – 命令
- MATLAB – 数据类型
- MATLAB – 运算符
- MATLAB – 日期和时间
- MATLAB – 数字
- MATLAB – 随机数
- MATLAB – 字符串和字符
- MATLAB – 文本格式化
- MATLAB – 时间表
- MATLAB – M 文件
- MATLAB – 冒号表示法
- MATLAB – 数据导入
- MATLAB – 数据导出
- MATLAB – 数据归一化
- MATLAB – 预定义变量
- MATLAB – 决策
- MATLAB – 决策语句
- MATLAB – if…end 语句
- MATLAB – if…else 语句
- MATLAB – if…elseif…else 语句
- MATLAB – 嵌套 if 语句
- MATLAB – switch 语句
- MATLAB – 嵌套 switch
- MATLAB – 循环
- MATLAB – 循环
- MATLAB – for 循环
- MATLAB – while 循环
- MATLAB – 嵌套循环
- MATLAB – break 语句
- MATLAB – continue 语句
- MATLAB – end 语句
- MATLAB – 数组
- MATLAB – 数组
- MATLAB – 向量
- MATLAB – 转置运算符
- MATLAB – 数组索引
- MATLAB – 多维数组
- MATLAB – 兼容数组
- MATLAB – 分类数组
- MATLAB – 元胞数组
- MATLAB – 矩阵
- MATLAB – 稀疏矩阵
- MATLAB – 表格
- MATLAB – 结构体
- MATLAB – 数组乘法
- MATLAB – 数组除法
- MATLAB – 数组函数
- MATLAB – 函数
- MATLAB – 函数
- MATLAB – 函数参数
- MATLAB – 匿名函数
- MATLAB – 嵌套函数
- MATLAB – return 语句
- MATLAB – 无返回值函数
- MATLAB – 局部函数
- MATLAB – 全局变量
- MATLAB – 函数句柄
- MATLAB – 滤波器函数
- MATLAB – 阶乘
- MATLAB – 私有函数
- MATLAB – 子函数
- MATLAB – 递归函数
- MATLAB – 函数优先级顺序
- MATLAB – map 函数
- MATLAB – mean 函数
- MATLAB – end 函数
- MATLAB – 错误处理
- MATLAB – 错误处理
- MATLAB – try…catch 语句
- MATLAB – 调试
- MATLAB – 绘图
- MATLAB – 绘图
- MATLAB – 绘制数组
- MATLAB – 绘制向量
- MATLAB – 条形图
- MATLAB – 直方图
- MATLAB – 图形
- MATLAB – 二维线图
- MATLAB – 三维图
- MATLAB – 格式化绘图
- MATLAB – 对数坐标轴图
- MATLAB – 绘制误差条
- MATLAB – 绘制三维等高线图
- MATLAB – 极坐标图
- MATLAB – 散点图
- MATLAB – 绘制表达式或函数
- MATLAB – 绘制矩形
- MATLAB – 绘制频谱图
- MATLAB – 绘制网格曲面
- MATLAB – 绘制正弦波
- MATLAB – 插值
- MATLAB – 插值
- MATLAB – 线性插值
- MATLAB – 二维数组插值
- MATLAB – 三维数组插值
- MATLAB – 多项式
- MATLAB – 多项式
- MATLAB – 多项式加法
- MATLAB – 多项式乘法
- MATLAB – 多项式除法
- MATLAB – 多项式的导数
- MATLAB – 变换
- MATLAB – 变换函数
- MATLAB – 拉普拉斯变换
- MATLAB – 拉普拉斯滤波器
- MATLAB – 高斯-拉普拉斯滤波器
- MATLAB – 逆傅里叶变换
- MATLAB – 傅里叶变换
- MATLAB – 快速傅里叶变换
- MATLAB – 二维逆余弦变换
- MATLAB – 向坐标轴添加图例
- MATLAB – 面向对象
- MATLAB – 面向对象编程
- MATLAB – 类和对象
- MATLAB – 函数重载
- MATLAB – 运算符重载
- MATLAB – 用户自定义类
- MATLAB – 复制对象
- MATLAB – 代数
- MATLAB – 线性代数
- MATLAB – 高斯消元法
- MATLAB – 高斯-约旦消元法
- MATLAB – 简化行阶梯形
- MATLAB – 特征值和特征向量
- MATLAB – 积分
- MATLAB – 积分
- MATLAB – 二重积分
- MATLAB – 梯形法则
- MATLAB – 辛普森法则
- MATLAB – 其他
- MATLAB – 微积分
- MATLAB – 微分
- MATLAB – 矩阵求逆
- MATLAB – GNU Octave
- MATLAB – Simulink
- MATLAB – 有用资源
- MATLAB – 快速指南
- MATLAB – 有用资源
- MATLAB – 讨论
MATLAB – 日期和时间
Matlab 提供了丰富的命令来处理日期和时间。您可以以不同的格式显示日期和时间,无论是字符串还是字符向量。您还可以执行数学运算,例如对日期和时间值进行加、减、排序、连接和绘图。
以下是一些带有示例的命令,用于在 Matlab 中获取当前日期和时间。日期和时间的数组可以以不同的格式显示,在这里我们将讨论 Matlab 中表示它的不同方法。
使用 date 命令
date 命令返回当前日期,格式为 dd-MMM-yyyy 的字符向量。此格式将月份的天数 (dd) 表示为数字,月份名称 (MMM) 表示为其三个字母的缩写,年份 (yyyy) 表示为数字。返回的日期将不考虑本地时间,而是从协调世界时 (UTC) 获取当前日期。
语法
date
示例
a = date
当您在 Matlab 中执行此命令时,输出将为:
a = 30-Aug-2024
使用 datetime 命令
datetime 命令返回一个带有时间的日期,表示时间点。
- datetime – 返回一个包含当前日期和时间的数组。
- datetime(relativeDay) – 这里 relativeDay 可以输入“today”、“yesterday”、“tomorrow”或“now”。
- datetime(DateStrings) – 这里 DateStrings 可以是数组格式的日期和时间。
- datetime(DateVectors) – 日期向量是一个 m×6 或 m×3 的矩阵。对于 m×6,它将包含日、月、年、时、分和秒。对于 m×3,它将是一个包含日、月和年的矩阵。
- datetime(Y,M,D) – 带有年、月和日的 datetime。
- datetime(Y,M,D,H,MI,S) – 带有年、月、日、时、分和秒的 datetime。
示例 1
只需使用 datetime() 方法即可显示当前日期和时间,如下所示:
k = datetime
执行后的输出如下:
>> k = datetime k = datetime 24-May-2023 07:56:32 >>
示例 2
此示例将以本地时区显示时间。
time_now = datetime('now','TimeZone','local','Format','d-MMM-y HH:mm:ss Z')
当您在 Matlab 命令窗口中执行相同的命令时,输出为:
>> time_now = datetime('now','TimeZone','local','Format','d-MMM-y HH:mm:ss Z') time_now = datetime 24-May-2023 07:48:50 +0530 >>
美国/纽约时区的日期和时间。
>> time_now = datetime('now','TimeZone','America/New_York','Format','d-MMM-y HH:mm:ss Z') time_now = datetime 23-May-2023 22:23:01 -0400 >>
示例 3
在此示例中,我们将日期字符串作为向量数组。
DateasStrings = {'2023-05-22';'2023-05-23'}; t = datetime(DateasStrings)
执行后,您将得到:
>> DateasStrings = {'2023-05-22';'2023-05-23'}; t = datetime(DateasStrings) t = 2×1 datetime array 22-May-2023 23-May-2023 >>
您还可以将给定的数组转换为所需的格式,如下所示
DateStrings = {'2022-05-26';'2022-08-03'}; t = datetime(DateStrings, 'InputFormat','yyyy-MM-dd')
在上面,日期将转换为 yyyy-MM-dd 格式,执行后的输出如下:
>> DateStrings = {'2022-05-26';'2022-08-03'}; t = datetime(DateStrings ,'InputFormat','yyyy-MM-dd') t = 2×1 datetime array 26-May-2022 03-Aug-2022 >>
示例 4
您可以将年、月和日作为输入提供给 datetime,它将返回日期。
datetime(2023, 5, 12)
上面的输出为:
>> datetime(2023, 5, 12) ans = datetime 12-May-2023 >>
示例 5
您可以像下面这样输入年、月、日、时、分和秒:
datetime(2023,5,24,8,21,5)
执行后的输出为:
>> datetime(2023,5,24,8,21,5) ans = datetime 24-May-2023 08:21:05 >>
使用 Calendar 方法
此方法将为您提供指定年份和月份的日历。默认情况下,它将返回当前年份和月份的日历。
语法
calendar // current year and month will be displayed. calendar(y,m) // the given year month will be displayed calendar(d) // Here d datetime value or text timestamp that can be year month and day .As per the value of d , the calendar for that month and year will be displayed.
示例 1
让我们检查日历的输出。
calendar
输出为:
May 2023 S M Tu W Th F S 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 0 0 0
示例 2
在此示例中,年份和月份将传递给日历。
calendar(1983, 2)
输出为:
Feb 1983 S M Tu W Th F S 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 0 0 0 0 0 0 0 0 0 0 0 0
示例 3
在此示例中,我们将使用 datetime 作为输入传递给日历,如下所示:
d = datetime("now") calendar(d)
执行后的输出为:
>> d = datetime("now") calendar(d) d = datetime 24-May-2023 08:44:57 May 2023 S M Tu W Th F S 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 0 0 0 >>
使用 dateshift() 方法移动日期时间
dateshift() 方法负责移动日期或生成日期和时间的序列。
语法
t = dateshift(t,'start',unit) // Here t is the datetime.It will shift the datetime by the unit given to the start. t = dateshift(t,'end',unit) // Here t is the datetime. It will shift the datetime by the given unit to the end. t = dateshift(t,'dayofweek',dow) // Here datetime will be shifted to the given dayofweek, if the current date falls on the same dayofweek it will return the same date.
这里我们将尝试一些示例,例如将当前日期移动到年初。将当前日期移动到月末。
示例 1
在此示例中,当前日期 2023 年 5 月 24 日将移动到年初,即 2023 年 1 月 1 日。
t = datetime('today') t1 = dateshift(t, 'start', 'year')
执行后的输出为:
>> t = datetime('today') t1 = dateshift(t, 'start', 'year') t = datetime 24-May-2023 t1 = datetime 01-Jan-2023 >>
示例 2
在此示例中,我们将当前日期移动到月末。
t = datetime('today') t1 = dateshift(t, 'end', 'month')
执行后的输出为:
>> t = datetime('today') t1 = dateshift(t, 'end', 'month') t = datetime 24-May-2023 t1 = datetime 31-May-2023 >>
我们还可以使用 year 作为单位将其移动到年末。
t = datetime('today') t1 = dateshift(t, 'end', 'year')
输出为
>> t = datetime('today') t1 = dateshift(t, 'end', 'year') t = datetime 24-May-2023 t1 = datetime 31-Dec-2023 >>
日期和时间的算术运算
我们将讨论日期和时间的算术运算,例如加法和减法。通过加法,我们将获得未来的日期时间,通过减法,我们将获得过去的日期时间。像加、减、乘等运算可以对日期和时间执行,就像对其他数据类型一样。您可以使用 hours()、minutes()、days()、seconds()、years() 来对给定的日期时间进行加减。
让我们看一些例子。
示例 1
在此示例中,我们将使用 datetime() 方法来显示当前日期和时间。我们将添加 2 个小时,并显示日期时间,如下所示。
time1 = datetime('now') time2 = time1 + hours(2)
在 Matlab 中执行后的输出如下:
>> time1 = datetime('now') time2 = time1 + hours(2) time1 = datetime 17-Jun-2023 17:17:52 time2 = datetime 17-Jun-2023 19:17:52 >>
如果您想要未来的日期和时间并显示向量数组,则可以按如下方式进行:
time1 = datetime('now') time2 = time1 + hours(2:5)
执行后的输出为:
>> time1 = datetime('now') time2 = time1 + hours(2:5) time1 = datetime 17-Jun-2023 17:18:36 time2 = 1×4 datetime array 17-Jun-2023 19:18:36 17-Jun-2023 20:18:36 17-Jun-2023 21:18:36 17-Jun-2023 22:18:36 >>
在上面的示例中,您可以看到日期时间的向量数组,它们之间的时间间隔相差 2 小时。
示例 2
在此示例中,让我们执行减法运算,如下所示。
time1 = datetime('now') time2 = time1 - hours(2)
datetime() 方法用于提供当前日期和时间。从给定的时间中减去 2 个小时。hours(2) 用于提供小时数,类似地,您可以使用 minutes() 方法从给定的时间中减去分钟数。
>> time1 = datetime('now') time2 = time1 - hours(2) time1 = datetime 17-Jun-2023 17:22:27 time2 = datetime 17-Jun-2023 15:22:27 >>
让我们也使用 minutes() 方法,如下所示。
time1 = datetime('now') time2 = time1 - minutes(45)
执行后的输出如下:
>> time1 = datetime('now') time2 = time1 - minutes(45) time1 = datetime 17-Jun-2023 17:26:54 time2 = datetime 17-Jun-2023 16:41:54 >>
让我们也尝试使用减法运算来获取向量数组,如下所示
time1 = datetime('now') time2 = time1 - hours(2:5)
执行后的输出如下:
>> time1 = datetime('now') time2 = time1 - hours(2:5) time1 = datetime 17-Jun-2023 17:32:04 time2 = 1×4 datetime array 17-Jun-2023 15:32:04 17-Jun-2023 14:32:04 17-Jun-2023 13:32:04 17-Jun-2023 12:32:04 >>
示例 3
在上面的示例中,我们使用了 hours()、minutes()、datetime() 方法进行加减。现在让我们使用 days() 方法来获取未来的或过去的日期。
time1 = datetime('now') time2 = time1 + days(5)
在上述情况下,将向当前日期添加 5 天,并显示日期时间。
执行后的输出如下:
>> time1 = datetime('now') time2 = time1 + days(5) time1 = datetime 17-Jun-2023 17:42:42 time2 = datetime 22-Jun-2023 17:42:42 >>
让我们也使用 days() 方法减去并获取过去的日期时间。
time1 = datetime('now') time2 = time1 - days(5)
执行后的输出如下:
>> time1 = datetime('now') time2 = time1 - days(5) time1 = datetime 17-Jun-2023 17:45:19 time2 = datetime 12-Jun-2023 17:45:19 >>