概述
如果查看TimeSeries对象的属性,在尝试绘制之前运行代码时,我们会看到:
>> ts
timeseries
Common Properties:
Name: 'unnamed'
Time: [50x1 double]
TimeInfo: [1x1 tsdata.timemetadata]
Data: [1x1x50 double]
DataInfo: [1x1 tsdata.datametadata]
您会看到时间序列对象中有一个数据字段,以及表示每个点实例的时间值的时间字段.如果要单独访问字段并绘制最后25个元素,请执行以下操作:
plot(ts.Time(end-24:end), squeeze(ts.Data(end-24:end)));
ts是你的TimeSeries对象,如果你想访问这个对象中的字段,可以使用点运算符(….你已经知道了).使用点运算符后,只需使用其相应的名称即可访问所需的字段.因此,如果需要时间值,请使用“时间”,如果需要数据,请使用“数据”.现在,看起来很奇怪的是我用挤压. squeeze删除单身尺寸.如果你可以看到,Data是一个1 x 1 x 50阵列,它应该只是一个50 x 1阵列.挤压的目的是删除多余的维度以获取我们的实际数据.
请注意,如果您的时间序列中只有一个信号,则似乎只会发生这种情况.我们应该有多个信号……比方说,如果我们想要三个长度为50的信号,我们会创建一个50 x 3矩阵,其中每列代表一个信号.它看起来像这样:
>> t = 1:50;
>> A = rand(50,3);
>> ts = timeseries(A,t)
timeseries
Common Properties:
Name: 'unnamed'
Time: [50x1 double]
TimeInfo: [1x1 tsdata.timemetadata]
Data: [50x3 double]
DataInfo: [1x1 tsdata.datametadata]
rand在[0-1]范围内生成任意大小的随机矩阵或矢量值.你会看到我们的信号现在是50 x 3.如果你想绘制它,绘图可以识别每个时间帧的多个信号….所以你可以这样做:
plot(ts.Time, ts.Data);
这应该生成三条迹线的图,每条迹线由不同的颜色描绘,并且在由ts.Time指定的相同时间范围内.
同样,如果您想为每个信号绘制最后25个点,只需执行以下操作:
plot(ts.Time(end-24:end), ts.Data(end-24:end,:));
此代码将访问数据中每列的最后25行(即每个信号)并将其全部绘制出来.
最后
以上就是英勇鸡为你收集整理的MATLAB一元时间序列,matlab – 选择时间序列的一部分的全部内容,希望文章能够帮你解决MATLAB一元时间序列,matlab – 选择时间序列的一部分所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复