- 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 - 返回语句
- MATLAB - 空函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波器函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级顺序
- MATLAB - 映射函数
- MATLAB - 平均值函数
- MATLAB - 结束函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - Try...Catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 2D 线性图
- MATLAB - 3D 图
- MATLAB - 格式化绘图
- MATLAB - 对数坐标轴图
- MATLAB - 绘制误差条
- MATLAB - 绘制 3D 等值线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 2D 数组插值
- MATLAB - 3D 数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 2D 逆余弦变换
- 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 中提供的一种数据结构。它本质上是带有行和列的表格,其中每一行都带有时间戳。数据存储在面向列的数据变量中,这些变量将具有不同的数据类型和大小,但行数相同。时间表提供各种与时间相关的函数。它们处理对齐、组合,并允许对给定时间表中带时间戳的数据进行数学运算。
由于存储的数据带有时间戳,因此有助于分析数据,并且可以在不同的领域和应用中发挥作用。在现实世界中,有很多使用场景可以应用时间表。以下是一些您可以使用时间表的主要领域:
- 医学研究 - 在这里,您可以使用时间表来存储和分析与药物和疾病实验相关的数据。实验可以与心肺、干细胞、感染和免疫等相关。稍后可以使用 plot 和 histogram 等函数绘制数据。
- 股票市场分析 - 来自股票市场的数据量巨大。您可以使用时间表来存储和分析它。MATLAB 中还有其他有用的方法可以用于计算数字。
- 环境监测和评估 - 来自环境研究的数据可以存储在时间表中以进行进一步分析。
- 传感器数据 - 使用时间表,您可以分析和存储与 GPS、温度等相关的传感器数据。
让我们深入了解 MATLAB 中时间表的工作原理。
创建时间表
MATLAB 提供多种创建时间表的方法,以下是其中一些:
- 使用 timetable() 函数
- 使用 array2timetable() 函数
- 使用 table2timetable() 函数
- 使用 timeseries2timetable() 函数
使用 timetable() 函数
以下是 timetable() 函数的语法:
语法
T = timetable(rowTimes,var1,...,varN)
timetable() 函数将创建一个表格,其中 var1…varN 是输入数据变量。参数 rowTimes 是一个时间向量。在上述函数中,数据变量 var1..varN 的数据类型可以不同,但应具有相同数量的行。rowTimes 同理,它是一个包含 datetime 或 duration 的向量。
要创建 rowTimes,我们将使用 dateTime() 函数,如下所示:
timer = datetime({'2023-01-01 09:00:00';'2023-01-01 09:30:00';'2023-01-01 10:00:00'});
在 MATLAB 中执行上述代码后,输出如下:
>> timer = datetime({'2023-01-01 09:00:00';'2023-01-01 09:30:00';'2023-01-01 10:00:00'}) timer = 3×1 datetime array 01-Jan-2023 09:00:00 01-Jan-2023 09:30:00 01-Jan-2023 10:00:00 >>
让我们将计时器和数据变量馈送到 timetable 函数,并在 MATLAB 中查看输出。
T = timetable(timer ,DayTemp ,DayPressure)
在 MATLAB 中执行后,我们得到以下输出
>> timer = datetime({'2023-01-01 09:00:00';'2023-01-01 09:30:00';'2023-01-01 10:00:00'}); DayTemp = [28.3;30.0;33.3]; DayPressure = [23.1;23.03;33.9]; T = timetable(timer ,DayTemp ,DayPressure) T = 3×2 timetable timer DayTemp DayPressure ____________________ _______ ___________ 01-Jan-2023 09:00:00 28.3 23.1 01-Jan-2023 09:30:00 30 23.03 01-Jan-2023 10:00:00 33.3 33.9 >>
使用 array2timetable() 函数
以下是 array2timetable() 函数的语法:
语法
array2timetable() 函数将返回一个时间表,其中 X 是一个 MXN 数组,rowTimes 是一个大小为 Mx1 的向量数组。
让我们看一个使用 array2timetable() 函数创建时间表的示例。
示例
首先,让我们创建一个 3x3 矩阵作为 X。
X = rand(3,3)
现在让我们创建一个行向量 rowTimes。
rowTimes = seconds(1:3)
现在让我们在 array2timetable() 函数中使用 X 和 rowTimes 并查看输出
X = rand(3,3) rowTimes = seconds(1:3) TT = array2timetable(X,'RowTimes',rowTimes)
在 MATLAB 中执行后的输出如下:
>> X = rand(3,3) rowTimes = seconds(1:3) TT = array2timetable(X,'RowTimes',rowTimes) X = 0.6787 0.3922 0.7060 0.7577 0.6555 0.0318 0.7431 0.1712 0.2769 rowTimes = 1×3 duration array 1 sec 2 sec 3 sec TT = 3×3 timetable Time X1 X2 X3 _____ _______ _______ ________ 1 sec 0.67874 0.39223 0.70605 2 sec 0.75774 0.65548 0.031833 3 sec 0.74313 0.17119 0.27692 >>
使用 table2timetable() 函数
在本例中,我们将使用一个表格,使用 table2timetable() 函数从中创建一个时间表。
表格是 MATLAB 中的一种数据类型,它以表格格式存储数据,就像您在电子表格中看到数据一样。
表格示例如下:
Name = {'Siya';'Riya';'Helen';'Reena'}; Age = [25;30;35;40]; Height = [149;150;160;153]; Weight = [50;65;48;52]; Timer = datetime({'2023-01-01 09:00:00';'2023-01-01 09:30:00';'2023-01-01 10:00:00';'2023-01-01 11:00:00'}) T = table(Name,Age,Height,Weight,Timer)
在 MATLAB 中执行后,创建的表格如下所示:
T = table(Name,Age,Height,Weight, Timer) T = 4×5 table Name Age Height Weight Timer _________ ___ ______ ______ ___________________ {'Siya' } 25 149 50 2023-01-01 09:00:00 {'Riya' } 30 150 65 2023-01-01 09:30:00 {'Helen'} 35 160 48 2023-01-01 10:00:00 {'Reena'} 40 153 52 2023-01-01 11:00:00
现在让我们使用相同的表格从中创建一个时间表。
所用函数的语法为:
TT = table2timetable(T)
T 是输入到 table2timetable() 函数的表格。让我们在 MATLAB 中执行相同的操作
>> TT = table2timetable(T) TT = 4×4 timetable Timer Name Age Height Weight ____________________ _________ ___ ______ ______ 01-Jan-2023 09:00:00 {'Siya' } 25 149 50 01-Jan-2023 09:30:00 {'Riya' } 30 150 65 01-Jan-2023 10:00:00 {'Helen'} 35 160 48 01-Jan-2023 11:00:00 {'Reena'} 40 153 52 >>
使用 timeseries2timetable() 函数
timeseries2timetable() 函数将时间序列对象转换为时间表。
语法如下:
TT = timeseries2timetable(ts)
这里 ts 是时间序列对象。
下面的示例显示了 timeseries() 函数,它返回时间序列对象,我们稍后可以在 timeseries2timetable() 函数中使用它。
ts = timeseries(rand(5,1),[0 05 10 15 20])
时间序列对象由 5 个以 5 秒间隔采样的随机数组成。
在 MATLAB 中执行后的输出为:
>> ts = timeseries(rand(5,1),[0 05 10 15 20]) timeseries Common Properties: Name: 'unnamed' Time: [5x1 double] TimeInfo: [1x1 tsdata.timemetadata] Data: [5x1 double] DataInfo: [1x1 tsdata.datametadata] More properties, Methods >> ts.Time ans = 0 5 10 15 20 >>
属性 ts.Time 返回时间。
现在让我们在 timeseries2timetable() 函数中使用时间序列对象
TT = timeseries2timetable(ts)
在 MATLAB 中执行后的输出如下:
>> TT = timeseries2timetable(ts) TT = 5×1 timetable Time Data ______ _______ 0 sec 0.81472 5 sec 0.90579 10 sec 0.12699 15 sec 0.91338 20 sec 0.63236 >>