2016-12-25 149 views
1

我从2007/5/1到2007/5/30从00:00到23:59:58有一些数据。我想根据数据和时间一起绘制这些数据。我怎样才能一起定义日期和时间?因为它有一个固定的日期和时间。例如用matlab中的时间序列绘制数据

2007/5/1 00:00:00  -0.2 
2007/5/1 00:00:02  -0.1 
2007/5/1 00:00:04  -0.12 
. 
. 
. 
2007/5/31 23:59:58  -0.4 

我已经使用DateTime代码,但我有规律的时间间隔,我不知道如何解决它。

+0

是你的时间向量是'datetime'格式?如果是这样,你只需要像往常一样使用'plot'。试着在这里举一个想要的输出的例子,以及你到目前为止所得到的结果。 – EBH

+0

不,实际上它没有日期时间格式,但我有连续的数据,其中我知道第一个数据是00:00:00 2007/5/1,时间相同。 –

回答

0

以下是使用datetime变量的示例。您需要将数据导入与时间向量(t以下)对齐的对应向量,以便data(i)t(i)的相关数据。

% create a datetime vector of all instances: 
start = datetime('2007/5/1 00:00:00','InputFormat','uuuu/MM/dd HH:mm:ss'); 
step = duration(seconds(2)); 
fin = datetime('2007/5/31 23:59:58','InputFormat','uuuu/MM/dd HH:mm:ss'); 
t = start:step:fin; % a 1339200 elements vector, of all time steps 
% some random data: 
data = rand(numel(t),1); 
% plotting samples 1 to 100: 
plot(t(1:100),data(1:100)) 
xlim([datenum(t(1)) datenum(t(100))]) 

我在这里使用随机号码的例子,你将无法看到任何东西这么长的矢量,所以我只绘制它的一部分:

plotDate

+0

我每天有1440个数据,这意味着它具有比秒更高的精度......我怎么定义它? 如何绘制时间序列以查看其整体演变? –

+0

每天1440个样本的** **精确度为每个样本1分钟,您可以更改:'step = duration(minutes(1))',这样您就可以获得这段时间的所有分钟数。如果你想绘制所有的时间序列,只需写:'plot(t,data)' – EBH