最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 服务器 > 系统运维 >
matlab处理时间数据绘图有哪些常用方式?
CSDN发表于 2020-09-09 17:34 次浏览

最近一段时间,工作上花了不少时间用matlab处理时间数据,数据庞大不说,复杂度也高,各种推算和统计所以今天我打算总结一下,平时我在用matlab处理时间数据绘图时常用的几个小技巧

直接绘制图像

函数介绍

datenum

datenum: 将日期和时间转化为日期序列值,即把日期转化成普通实数

1·% 常用形式:DateNumber = datenum(DateString) 将表示日期和时间的文本转换为日期序列值
2·%           DateNumber = datenum(DateString,formatIn) 使用 formatIn 解析 DateString 所表示的日期和时间
3·%%%%% 举例:
4·datenumber1=datenum('2020,9,7')

6·datestring='24-Oct-2003 12:45:07';
7·formatin='dd-mmm-yyyy HH:MM:SS';
8·datenumber2=datenum(datestring,formatin)
9·% 输出:
10·% datenumber1 =
11·%       738041
12·% datenumber2 =
13·%    7.3188e+05
 

常用格式:

 

dateaxis

dateaxis: 将序列日期轴标签转换为日历日期轴标签

1·%常用形式:dateaxis(Tickaxis,DateForm)
2·% Tickaxis:坐标轴
3·% DateForm:要使用的日期格式
4·% 不方便单独举例,后面一起举例

日期格式对应表:

举例一

绘制横坐标为年月日的数据图,时间为2018.1.1到2019.1.1,以一天为时间间隔

1·x=linspace(datenum(2018,1,1),datenum(2019,1,1),365);%把时间以数值形式分成365份
2·y=rand(1,365);
3·plot(x,y);
4·dateaxis('x',17);%转化横坐标为相应的日期格式
5·xlabel('时间');
6·ylabel('数据');

结果展示:

举例二

绘制横坐标为时分的数据图,时间为6:30到9:30,以15min为时间间隔

1·x=linspace(datenum('6:30','HH:MM'),datenum('9:30','HH:MM'),12);% 时间分成12份,使得时间间隔为15min
2·y=rand(1,12);
3·plot(x,y,'-o');
4·xlabel('时间');
5·ylabel('数据');
6·dateaxis('x',15);

结果展示:

读取表格时间数据绘图

date.xlsx表格截图:

代码部分:

1·[date,txt]=xlsread('date.xlsx');%date为数据部分,txt为日期部分
2·for i=1:length(txt)
3·     x(i)=datenum(txt{i});%txt{i},把txt中的cell类型转化为string类型
4·end
5·plot(x,date);
6·dateaxis('x',17);
7·xlabel('时间');
8·ylabel('数据');

运行结果:

标签:matlab下载
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐