Этот пример показывает, как считать данные о дате и времени из текстового файла. Затем это показывает, как объединить информацию даты и времени, хранившую в отдельных переменных в одну переменную datetime.
Создайте файл с именем разделенного текста пробела schedule.txt
, который содержит следующее (чтобы создать файл, используйте любой текстовый редактор, и копию и вставку):
Date Name Time 10.03.2015 Joe 14:31 10.03.2015 Bob 15:33 11.03.2015 Bob 11:29 12.03.2015 Kim 12:09 12.03.2015 Joe 13:05
Считайте файл с помощью функции readtable
. Используйте спецификатор преобразования %D
, чтобы считать первые и третьи столбцы данных как значения datetime.
T = readtable('schedule.txt','Format','%{dd.MM.uuuu}D %s %{HH:mm}D','Delimiter',' ')
T = Date Name Time __________ _____ _____ 10.03.2015 'Joe' 14:31 10.03.2015 'Bob' 15:33 11.03.2015 'Bob' 11:29 12.03.2015 'Kim' 12:09 12.03.2015 'Joe' 13:05
readtable
возвращает таблицу, содержащую три переменные.
Измените формат отображения для переменных T.Date
и T.Time
, чтобы просмотреть обе информации о дате и времени. Поскольку у данных в первом столбце файла ("Дата") нет времени информация, время получившихся значений datetime в значении по умолчанию T.Date
к полуночи. Поскольку данные в третьем столбце файла ("Время") не имеют никакой связанной даты, даты значений datetime в значениях по умолчанию T.Time
к текущей дате.
T.Date.Format = 'dd.MM.uuuu HH:mm'; T.Time.Format = 'dd.MM.uuuu HH:mm'; T
T = Date Name Time ________________ _____ ________________ 10.03.2015 00:00 'Joe' 12.12.2014 14:31 10.03.2015 00:00 'Bob' 12.12.2014 15:33 11.03.2015 00:00 'Bob' 12.12.2014 11:29 12.03.2015 00:00 'Kim' 12.12.2014 12:09 12.03.2015 00:00 'Joe' 12.12.2014 13:05
Объедините информацию о дате и времени от двух различных табличных переменных путем добавления T.Date
и временных стоимостей в T.Time
. Извлеките информацию времени от T.Time
с помощью функции timeofday
.
myDatetime = T.Date + timeofday(T.Time)
myDatetime = 10.03.2015 14:31 10.03.2015 15:33 11.03.2015 11:29 12.03.2015 12:09 12.03.2015 13:05