本文演示如何创建时间表、合并时间表以及将多个时间表中的数据调整到一个公共时间向量中。公共时间向量可以包含其中一个时间表或两个时间表中的时间,也可以是一个您指定的全新时间向量。以下示例演示如何计算和显示不同时间表中包含的天气测量值的日均值。

时间表是一种表类型,用于将时间与每一行进行关联。时间表可以存储具有不同数据类型和大小的列向数据变量,只要每个变量的行数相同。此外,时间表还提供了特定于时间的函数,以合并数据、为数据建立下标以及调整数据。

从文件导入时间表

将空气质量数据和天气测量值加载到两个不同的时间表中。测量值的日期范围从 2015 年 11 月 15 日到 2015 年 11 月 19 日。空气质量数据来自建筑物内部的传感器,而天气测量值来自外部传感器。

使用 readtimetable 函数读取表中的空气质量数据。输出是一个时间表。

indoors = readtimetable('indoors.csv');

您也可以使用 array2timetable 函数根据 M×N 数组来创建时间表,或者使用 timetable 函数根据工作区变量来创建时间表。

显示 indoors 的前五行。此时间表的每一行都带有一个标记该行数据的时间。

indoors(1:5,:)
ans=5×2 timetableTime            Humidity    AirQuality___________________    ________    __________2015-11-15 00:00:24       36           80    2015-11-15 01:13:35       36           80    2015-11-15 02:26:47       37           79    2015-11-15 03:39:59       37           82    2015-11-15 04:53:11       36           80

加载包含天气测量值的时间表。显示 outdoors 的前五行。

load outdoors
outdoors(1:5,:)
ans=5×3 timetableTime            Humidity    TemperatureF    PressureHg___________________    ________    ____________    __________2015-11-15 00:00:24        49          51.3          29.61   2015-11-15 01:30:24      48.9          51.5          29.61   2015-11-15 03:00:24      48.9          51.5          29.61   2015-11-15 04:30:24      48.8          51.5          29.61   2015-11-15 06:00:24      48.7          51.5           29.6

同步时间表

时间表 indoors 和 outdoors 包含不同时间在建筑物内部和外部获取的不同测量值。使用 synchronize 函数将所有数据都合并到一个时间表中。

tt = synchronize(indoors,outdoors);
tt(1:5,:)
ans=5×5 timetableTime            Humidity_indoors    AirQuality    Humidity_outdoors    TemperatureF    PressureHg___________________    ________________    __________    _________________    ____________    __________2015-11-15 00:00:24           36               80                49               51.3          29.61   2015-11-15 01:13:35           36               80               NaN                NaN            NaN   2015-11-15 01:30:24          NaN              NaN              48.9               51.5          29.61   2015-11-15 02:26:47           37               79               NaN                NaN            NaN   2015-11-15 03:00:24          NaN              NaN              48.9               51.5          29.61

输出时间表 tt 包含两个时间表的所有时间。synchronize 会在 tt 中未放置数据值的位置放置一个缺失数据指示符。如果两个输入时间表包含一个同名变量(如 Humidity),synchronize 将会重命名这两个变量并将二者都添加到输出时间表。

再次同步这些时间表,这次将会通过线性插值来填充缺失的数据值。

ttLinear = synchronize(indoors,outdoors,'union','linear');
ttLinear(1:5,:)
ans=5×5 timetableTime            Humidity_indoors    AirQuality    Humidity_outdoors    TemperatureF    PressureHg___________________    ________________    __________    _________________    ____________    __________2015-11-15 00:00:24            36                80               49               51.3         29.61   2015-11-15 01:13:35            36                80           48.919             51.463         29.61   2015-11-15 01:30:24         36.23             79.77             48.9               51.5         29.61   2015-11-15 02:26:47            37                79             48.9               51.5         29.61   2015-11-15 03:00:24            37            80.378             48.9               51.5         29.61

调整一个时间表中的数据

您也可以将单个时间表中的数据调整到新的时间向量中。使用 retime 函数以 6 小时为时间间隔计算 ttLinear 中的变量的均值。如果在您调整数据后有任何行包含 NaN 值,请使用 rmmissing 函数将这些值删除。

tv = [datetime(2015,11,15):hours(6):datetime(2015,11,18)];
ttHourly = retime(ttLinear,tv,'mean');
ttHourly = rmmissing(ttHourly);

绘制时间表数据图

根据时间表中每个变量的均值对 ttHourly 中的数据进行归一化。绘制这些测量值的日均值图。您可以使用时间表的 Variables 属性来访问这些变量。ttHourly.Variables 会返回与 ttHourly{:,:} 相同的变量。

ttMeanVars = ttHourly.Variables./mean(ttHourly.Variables);
plot(ttHourly.Time,ttMeanVars);
legend(ttHourly.Properties.VariableNames,'Interpreter','none');
xlabel('Time');
ylabel('Normalized Weather Measurements');
title('Mean Daily Weather Trends');

MATLAB 基础知识 数据类型 时间表 创建时间表相关推荐

  1. MATLAB 基础知识 数据类型 表 创建和使用表

    本文说明如何根据工作区变量创建表,使用表数据,并将表写入文件以供日后使用.table 是一个数据类型,可将异构数据和元数据属性(例如变量名称.行名称.说明和变量单位)收集到一个容器中. 表适用于列向数 ...

  2. MATLAB 基础知识 数据类型 时间表 按行时间和变量类型选择时间表数据

    时间表是一种表类型,用于将时间与每一行进行关联.您可以使用时间表下标,以不同的方式选择其数据子集.要选择行时间位于给定的时间范围内的时间表行,请使用 timerange 函数指定时间范围.由于时间表是 ...

  3. MATLAB 基础知识 数据类型 元胞数组 创建元胞数组

    本文说明如何使用 {} 运算符或 cell 函数创建元胞数组. 当要将数据放入一个元胞数组中时,请使用元胞数组构造运算符 {} 创建该数组. myCell = {1, 2, 3;'text', ran ...

  4. MATLAB 基础知识 数据类型 表 添加、删除和重新排列表变量

    本文说明如何在表中添加.删除和重新排列列向变量.您可以使用 addvars.movevars 和 removevars 函数添加.移动和删除表变量.作为备选方法,您还可以使用圆点语法或对表进行索引来修 ...

  5. MATLAB 基础知识 数据类型 数据类型转换 将文本转换为数值

    本文说明如何将文本转换为它所表示的数值.通常,当有表示要绘制或在计算中使用的数字的文本时,需要执行这种转换.例如,文本可能来自文本文件或电子表格.如果在将其导入 MATLAB 时,您尚未将其转换为数值 ...

  6. MATLAB 基础知识 数据类型 表 修改单位、说明和表变量名称

    本文演示了如何访问和修改变量单位.说明和名称这几种表属性.您也可以使用变量编辑器来编辑这些属性值. 加载样本数据 加载样本患者数据并创建一个表. load patients BloodPressure ...

  7. MATLAB 基础知识 数据类型 函数句柄 比较函数句柄

    比较根据命名函数构造的句柄 MATLAB 会将根据同一命名函数构造的函数句柄视为相同的函数句柄.isequal 函数在比较以下类型的句柄时会返回 true 值. fun1 = @sin; fun2 = ...

  8. MATLAB 基础知识 数据类型 表 添加和删除表行

    本文演示了如何在表中添加和删除行.您也可以使用变量编辑器来编辑表. 加载样本数据 加载样本患者数据并创建一个表 T. load patients T = table(LastName,Gender,A ...

  9. MATLAB 基础知识 数据类型 函数句柄 使用函数句柄调用局部函数

    本文演示如何创建指向局部函数的句柄.如果函数返回指向局部函数的句柄,则可以在主函数外部调用局部函数.此方法可让您在单个文件中包含多个可调用函数. 在您的工作文件夹下的 ellipseVals.m 文件 ...

最新文章

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 2. 多元线性回归
  2. python中关键字参数含义_python中接受任意关键字的参数
  3. 【科普】从HTTP到HTTP/3的发展简史
  4. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(1)
  5. JavaScript JSON操作
  6. 【传智播客】JavaWeb程序设计任务教程 第十,十一,十二章练习答案【2021最新合集】
  7. html 怎么显示在投影下面,投影仅底部css3
  8. php background-image,css background-image属性怎么用
  9. coreos 安装 mysql_kubernetes下安装mysql
  10. 利用优先级队列实现堆栈
  11. 疫情按下快进键,电商抢占市场红利需可靠的助力
  12. java array使用_Java_ArrayLit详细用法
  13. VS2015 编译问题记录(更新)
  14. 移动硬盘与电脑连接后 计算机中找不到,移动硬盘不显示盘符怎么办 移动硬盘显示不出来解决方法【详解】...
  15. 追赶法 matlab编程,科学网—数值分析----三对角方程组的追赶法matlab程序 - 殷春武的博文...
  16. python实现网页微信登陆_(转帖)网站微信登录-python 实现
  17. 2020年中国医药冷链物流行业市场现状分析,行业步入发展快车道「图」
  18. 计算机重装后如何连接无线网络,电脑重装系统后无线网络连接不上怎么办
  19. 标准库之正则表达式3-前后向管理
  20. 微信域名防红防屏蔽防封系统,轻松微信推广域名被屏蔽问题

热门文章

  1. 如果银行想开挂,RPA机器人舍我其谁?
  2. Js 查询身份证是否男女、生日、年龄
  3. 如何锻炼孩子的专注力[为本教育]
  4. Java实现证件照简单换背景
  5. SSH自动输入密码,取消首次连接确认
  6. 通过ssh协议从github上下载代码
  7. JVM垃圾回收之哪些对象可以被回收
  8. 网际控制报文协议ICMP的应用——traceroute
  9. hyperapp 共享_Hyperapp快速入门
  10. 网店美工之首页设计的必胜绝招