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行(即每个信号)并将其全部绘制出来.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值