matlab作时间相关的图

xiaoxiao2021-02-27  225

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

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

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

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

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

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

转载请注明原文地址: https://www.6miu.com/read-11313.html

最新回复(0)