MATLAB时间计算
背景
使用MATLAB洗数据的时候,偶尔会有时间计算的需求。根据经验整理了三种可能遇到的情况并附实现程序。
首先先介绍一下MATLAB中时间量的一些概念。对一个时间点,MATLAB有3种表示方式。
1. 字符串表示。直接以字符串表示时间,如 '20:56:01' '20:59:24' 等,比较直观,且格式可指定,但无法用于时间计算。
2. 数组表示。以固定六位数组表示一个时间点,如2022年1月1日20:56:01以数组表示为
date = 2022 1 1 20 56 1
可以用于部分计算,但该数组中各个元素长度不相等,表示不够美观。
3. 数值表示。计算指定时间与一个固定时间的天数之差,以这个数值形式的差值表示一个时间点。如 '20:56:01' 可表示为(由于未指定日期,所以MATLAB会给该时间一个默认的日期)
date =7.3852e+05
这种表示方法的好处是可以用来进行时间计算,但看起来非常不直观。
基于这3种格式,有3个函数可以进行时间格式的转换。分别为
datestr() % 将另两种时间格式转为字符串格式
datevec() % 将另两种时间格式转为数组格式
datenum() % 将另两种时间格式转为数值格式
下面以实例介绍用法。
1. 生成等间隔的时间序列(字符串格式)
例如,现想要以30s为间隔生成同一天的 '20:56:01' 到 '21:03:24' 两个时间点之间的时间序列,并以字符串的格式保存下来。程序实现如下
t_start = datenum('20:56:01'); % 将开始时间的字符串转换为数值
t_end = datenum('20:59:24'); % 将结束时间的字符串转换为数值
dt = 1/24/120; % 序列的时间间隔为30s,一天有24小时,一小时有120个30s,所以是1/24/120
T = t_start:dt:t_end; % 生成等间隔的时间数值
dv = datestr(T,'HH:MM:SS'); % 将该数值序列转换为时间字符串,格式为‘时:分:秒’,各两位
输出得到
dv =7×8 char 数组'20:56:01''20:56:31''20:57:01''20:57:31''20:58:01''20:58:31''20:59:01'
成功生成了30s间隔的时间序列。可以使用string()函数将dv转为字符串。
上述程序中,datenum函数用于将时间字符串转为数值,这样才能用于30s间隔的时间计算。格式为
DateNumber = datenum(DateString,formatIn)
其中,DateString为要转换的字符串,formatIn为该字符串对应的格式。若DateString为
'20:56:01'
则formatIn为
'HH:MM:SS'
意为将时、分、秒三个单位以冒号间隔,每个单位占两位。如果DateString为
'20/56/01'
则formatIn对应要改为
'HH/MM/SS'
其余格式可参考MATLAB文档 。在时间序列生成完毕后,可使用datestr将其转为字符串格式便于查看。格式为
DateString = datestr(Date,formatOut)
其中,Date为要转换的时间数值,formatOut指定转换后的字符串以什么格式输出。
2. 计算两个时间点之间的时间差
例如,现想要计算同一天 '20:56:01' 到 '20:59:24' 两个时间点之间的时间差,单位为秒。此时使用etime()函数即可,程序实现如下
t_start = datevec('20:56:01'); % 将开始时间的字符串转换为数组
t_end = datevec('20:59:24'); % 将结束时间的字符串转换为数组
dt = etime(t_end,t_start); % 计算两个时间点之间差了多少秒
3. 已知一个时间点和时间差,求另一个时间点
例如,现想要计算 '20:56:01' 这个时间点过了720秒后的时间,程序实现如下
t_start = datetime('20:56:01'); % 将开始时间的字符串转换为时间点
duration = 720; % 时间差,单位为秒
t_end = t_start + seconds(duration); % 计算过了720秒之后的时间
其中,seconds()用于将一个数值转换为秒对象。
MATLAB时间计算相关推荐
- matlab中计算运行时间的函数,【谁能都我一个计算时间的函数?是计算:例如上午08:00...-计算时间的函数-数学-伊凡渴同学...
概述:本道作业题是伊凡渴同学的课后练习,分享的知识点是计算时间的函数,指导老师为干老师,涉及到的知识点涵盖:[谁能都我一个计算时间的函数?是计算:例如上午08:00...-计算时间的函数-数学,下面是 ...
- matlab 计算 工程,matlab工程计算.doc
您所在位置:网站首页 > 海量文档  > 计算机 > matlab matlab工程计算.doc167页 本文档一共被 ...
- 电力系统matlab实验报告,基于matlab语言计算电力系统暂态稳定仿真程序实验报告.docx...
基于matlab语言计算电力系统暂态稳定仿真程序实验报告 BeijingJiaotongUniversity 电力系统分析 暂态稳定分析实验 学院:电气工程学院 班级:xxxxxxxx 学号:xxxx ...
- matlab实时系统时间,转--MATLAB——时间,日期及显示格式
MATLAB--时间,日期及显示格式 (https://www.cnblogs.com/ruo-li-suo-yi/p/7507063.html) 一.日期和时间 1.生成指定格式日期和时间 标准日期 ...
- 编写matlab语句计算试题,MATLAB测验考试题
<MATLAB测验考试题>由会员分享,可在线阅读,更多相关<MATLAB测验考试题(12页珍藏版)>请在装配图网上搜索. 1.一.填空题1.在MATLAB中,清除所有变量的命令 ...
- matlab 安装出来封面就没了,基于Matlab的计算报告书封面生成方法及计算机存储介质与流程...
本发明涉及一种计算报告书封面生成方法及计算机存储介质,特别是涉及一种基于Matlab的计算报告书封面生成方法及计算机存储介质. 背景技术: 技术人员在采用Matlab大型矩阵计算软件进行工程计算等科研 ...
- Matlab 将计算结果制作成 gif 动画
Matlab 将计算结果制作成 gif 动画 引言 求解包含时间的偏微分方程 (组) 将得到随着时间变化的数值结果, 把这样的数据制作成 gif 动画并结合到幻灯片中, 在毕业答辩.小组讨论.课堂教学 ...
- 使用MATLAB快速计算Khatri-Rao积
使用MATLAB快速计算Khatri-Rao积 Khatri-Rao积介绍 方法介绍 代码 结果验证 总结 Khatri-Rao积介绍 方法介绍 若采用循环的方式逐列计算Kronecker积,当矩阵的 ...
- python和matlab计算速度对比_【转载】Fortran与Matlab的计算速度对比(Code by myself)...
http://blog.163.com/zpfzcjndx@126/blog/static/6354568120135196735577/ 最近一直在计算向量式有限元的膜单元,笔者真心给Matlab的 ...
最新文章
- go语言中没有隐藏的this指针
- Linux下的基本命令详解,Linux基本命令详解-1.0
- 要让玩家买单的facebook中文网
- e-mobile帐号状态存在异常_企业微信添加好友提示”操作异常”怎么办?
- 企业五大模式,多看两遍你就懂了
- Qt输入输出之QProcess
- DataTable转换成List
- SpringBoot→初始化项目just run@SpringBootApplication、请求处理@RequestMapping、属性配置yml
- c++ while(condition) 中condition的一些思考
- 左耳朵耗子:996不是福气,但努力就会成功么?
- TMC2300-LA 低压、超静音微型步进电机驱动器
- 网站怎么移动适配?这些小技巧你必须要会
- java计算机毕业设计济南旅游网站源码+mysql数据库+系统+lw文档+部署
- 一个简单的Perl脚本求单条序列的GC含量
- PL3376C-ASEMI电源管理芯片PL3376C
- C语言编写程序求1到100的和,C语言菜鸟基础教程之求1到100的和
- 去水印的手机APP哪个好用,怎么一键去水印
- spring的 init-method和 destory-method方法
- Web性能测试基本性能指标及案例分析
- 计算机有效教学案例分析,中职计算机应用基础有效教学案例分析.doc