我是靠谱客的博主 英勇鸡,最近开发中收集的这篇文章主要介绍MATLAB一元时间序列,matlab – 选择时间序列的一部分,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如果查看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 – 选择时间序列的一部分所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部