这行Matlab代码是什么意思?

时间:2016-05-07 01:01:47

标签: matlab

我是Matlab的新手,我正试图解开代码here。特别是,我想知道这条线的作用:

ti = (Series{1}(2, i) - L*Dt):Dt:(Series{1}(2, i)-Dt);

特别是结肠有什么作用?我找到了this explanation

enter image description here

但对我而言,这并没有告诉我它在这里做了什么。同样,我甚至不清楚Series{1}(2, i) - L*Dt产生什么。我得到的通常答案是“尝试一下”,但我无法访问Matlab,所以会感激任何评论或建议。

谢谢。

2 个答案:

答案 0 :(得分:2)

大括号用于cell arrays,这是一种可以容纳任何类型的数据结构。在这种情况下,我认为系列{1}包含矩阵是一个安全的猜测,因此Series{1}(2,i)只是一个特定的条目。逐步编写这个可能是最容易理解的:

A = Series{1} % get the matrix
t0 = A(2,i) - L*Dt;
tN = A(2, i) - Dt;
ti = t0:Dt:tN; % create a time-series from time t0 to tN, with step-size Dt

答案 1 :(得分:1)

在链接的代码中显示Each cell is a 2xT matrix. First row contains the values and the second row contains SORTED time stamps. The first time series is the target time series which is predicted.

Series{1}(2, i)在第一个时间序列((2,i)表示)中取出第i个时间戳({1}表示)(我猜这是用作参考帧),以及让我们认为它是某个给定的数字T0

代码的第二步是建立一个时间数组,从T0 - L*Dt开始,在T0 - *Dt处停止。每个增量的长度为Dt

与@TroyHaskin指出的The meaning of colon operator in MATLAB相同。但我认为这是细胞阵列使它不那么容易理解。