У меня есть матрицу 21128x9 в следующем формате:В MATLAB, как вычислить время, прошедшее между строк в матрице
x = ['Participant No.' 'yyyy' 'mm' 'dd' 'HH' 'MM' 'SS' 'question No.' 'response']
например
x =
Columns 1 through 5
18 2011 10 26 15
18 2011 10 26 15
18 2011 10 26 15
18 2011 10 26 15
18 2011 10 26 15
19 2011 10 31 13
19 2011 10 31 13
19 2011 10 31 13
19 2011 10 31 13
19 2011 10 31 13
Columns 6 through 9
42 33 27 4
42 39 17 2
42 45 52 2
42 47 45 3
42 50 12 3
6 5 36 1
6 20 27 4
6 22 34 5
6 33 43 3
6 42 42 1
где столбцы 2-7 - векторы даты. Данные сортируются по дате/времени.
Я хотел бы рассчитать время, затрачиваемое на ответ на каждый вопрос для каждого участника, то есть время, прошедшее между строками 1 и 2, 2 и 3, 3 и 4, 4 и 5, а затем 6 и 7, 7 и 8 и т. д. - чтобы получить матрицу, отсортированную по номеру участника, где я затем смогу выработать среднее время, затраченное на вопрос.
Я пробовал использовать функцию etime, но безрезультатно.
EDIT: Что касается etime, просто чтобы увидеть, если она будет работать на практике, я попытался написать:
etime(x(2,5:7),x(1,5:7))
сравнить только столбцы 5-7 строк 1 и 2, но я продолжать получать обратно:
??? Index exceeds matrix dimensions.
Error in ==> etime at 41
t = 86400*(datenummx(t1(:,1:3)) - datenummx(t0(:,1:3))) + ...
сообщение ваш код для 'etime', я уверен, что кто-то может указать вашу ошибку – Dan
Dan. Я добавил его к основному вопросу, но я сомневаюсь, что я на правильном пути с * etime *. – 8eastFromThe3ast