2013-08-05 2 views
0

Мое время возвращается из запроса к базе данных следующим образом:вычитая одно из другого в MATLAB

kdbstrbegtime = 
    09:15:00 

kdbstrendtime = 
    15:00:00 

или, скорее, это то, что он выглядит в окне командной строки.

Я хочу создать матрицу с количеством строк, равным количеству секунд между двумя метками времени. Есть ли функции времени, которые делают это легко возможным?

ответ

1

Используйте datenum, чтобы преобразовать как временные метки в серийные номера, а затем вычесть их, чтобы получить количество секунд:

secs = fix((datenum(kdbstrendtime) - datenum(kdbstrbegtime)) * 86400) 

Так как серийный номер измеряется в днях, результат должен быть умножен на 86400 (The количество секунд в один день). Тогда вы можете создать матрицу с числом строк, равным secs, например:

A = zeros(secs, 1) 

Я выбрал число столбцов, чтобы быть 1, но это может быть изменено, конечно.

+0

спасибо очень много - просто новичок и не знает о функции datenum так высоко ценится – user2126062

+0

@ user2126062 Если это ответ разрешил вашу проблему, пожалуйста, подумайте о том, чтобы принять его, нажав галочку (✓) рядом с кнопками голосования. –

0

Сначала вы должны преобразовать kdbstrendtime и kdbstrbegtime в char по datestr команды, то:

time = datenum(kdbstrendtime)-datenum(kdbstrbegtime) 
t = datestr(time,'HH:MM:SS') 
Смежные вопросы