• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab作时间相关的图

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

时间相关的图指横坐标是时间或者日期,作图需要先掌握两点:

1.matlab中与时间、日期相关的函数

2.以时间为坐标轴作图需要注意的事项

  • 本文作图时会用到的函数:

datenum:从0000年(公元0年)到给定时间的天数,返回值为double型,详情使用help datenum查看。

  • 一些相关的函数:

datestr:日期数字转换为字符串

clock:获取当前日期和时间的数值

now:前时间至0000年的天数

以时间为坐标轴作图需要注意的事项

matlab似乎不能直接以时间字符串作为x轴来作图(我不确定,不过我没有找到能行的方法),既然不能直接用字符串,那就要想办法将时间字符串转换为数值型,方法就是使用datenum函数。

例如有如下数据:

% data.txt
2017/6/6    1
2017/6/7    2
2017/6/8    3
2017/6/9    4
2017/6/10   5
2017/6/15   6
2017/6/25   7
2017/7/13   8

读取后直接作图:

% 错误代码 matlab2014
alldata = importdata('data.txt');
x = alldata.textdata;
y = alldata.data;
plot(x, y);

会出现如下错误:

错误使用 plot
Invalid first data argument

故做如下修改:

% 正确代码
clc; clear;
alldata = importdata('data.txt');
x = alldata.textdata;
xnum = datenum(x); % 将日期转为数值
y = alldata.data;
plot(xnum, y);
datetick('x', 26); % 将坐标轴设置为日期格式

所以,要作为时间为坐标轴的图,大体思路就是会将时间转换为数值型,画图,再将坐标轴的设置为时间格式。

关于excel

想起了exel,在我的excel 2013中作如下图:

有看出什么问题吗?对,它的横坐标是等间隔显示的,但是实际数据明明不是等间隔的!不知道是不是有什么特殊的设置方法可以让它正确显示。不过如果横坐标是时间倒是正确的:

参考:

MATLAB常用日期和时间函数

Matlab中处理日期与时间的函数详解

matlab画图的简单问题 横坐标怎么换成时间-ilovematlab


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
即时通讯P2P聊天软件(全部源码)Delphi - 癫狂编程发布时间:2022-07-18
下一篇:
Delphi下利用SendInput模拟鼠标键发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap