2016-05-07 5 views
0

Я новичок в Matlab, и я пытаюсь раскрутить код here. В частности, мне интересно, что это за линия:Что означает эта строка кода Matlab?

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, и я буду благодарен за любые комментарии или советы.

спасибо.

+1

@TroyHaskin Я согласен с вами, но, возможно, это массив ячеек, который делает утверждение более сложным. – Yvon

ответ

2

Кудрявые скобки используются для cell arrays, структуры данных, которая может содержать любой тип. В этом случае я думаю, что безопасно предположить, что Series {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 
+0

Большое спасибо! – helloB

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) извлекает I-й отметки времени ((2,i) средства), в первый раз серия ({1} означает) (который я предполагаю, что используется в качестве опорного кадра), и давайте думать, что это определенное заданное число T0.

Второй шаг кода - установить временной массив, начиная с T0 - L*Dt и останавливаясь на T0 - *Dt. Длина каждого приращения равна Dt.

Это то же самое, что и The meaning of colon operator in MATLAB как указано @TroyHaskin. Но я думаю, что это массив ячеек, что делает его менее понятным.

+0

да! Большое спасибо за его ясное объяснение. – helloB

Смежные вопросы