我是Matlab的新手,我正试图解开代码here。特别是,我想知道这条线的作用:
ti = (Series{1}(2, i) - L*Dt):Dt:(Series{1}(2, i)-Dt);
特别是结肠有什么作用?我找到了this explanation:
但对我而言,这并没有告诉我它在这里做了什么。同样,我甚至不清楚Series{1}(2, i) - L*Dt
产生什么。我得到的通常答案是“尝试一下”,但我无法访问Matlab,所以会感激任何评论或建议。
谢谢。
答案 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相同。但我认为这是细胞阵列使它不那么容易理解。