MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

MATLAB

В.Г.Потемкин "Введение в Matlab" (v 5.3)
Глава 3. Программирование в среде Matlab 5

  В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель

3.8. Время и даты

Система MATLAB включает следующие функции для обработки времени и дат:

Тип функции Имя функции Назначение
Время и даты Now Текущее время и дата в форме числа
Date Текущая дата в форме строки
Clock Текущее время и дата в форме вектора
Преобразование Datenum Перевести в номер порядковой даты
Datestr Строковое представление даты
Datevec Векторное представление даты
Утилиты Calendar Календарь.
Weekday День недели
Eomday Последний день месяца
Datetick Дата с метками времени
Интервалы Cputime Время работы центрального процессора
Tic Начало отсчёта
Toc Конец отсчёта
Etime Прошедшее время

Эти функции размещены в каталоге timefun.

Формат даты. Система MATLAB работает с тремя форматами даты: строковым, числовым и векторным.

Обычно работают с датами в строковом формате: 10-Nov-1997.

Внутреннее представление даты - числовое и соответствует количеству дней, прошедших с некоторой фиксированной даты, в качестве которой в системе MATLAB принять 1 января 0000 года. Числовой формат даты отсчитывается от полуночи, то есть 18 часов соответствует 0.75 дня. Таким образом, дате ‘10-Nov-1997, 6:00 pm' в строковом формате соответствует числовой формат 729284.75.

Все функции, использующие дату, работают как со строковым, так и числовым форматами. При работе в командной строке предпочтителен строковый формат; если же необходимо выполнять вычисления, то эффективнее числовой формат.

Для некоторых функций системы MATLAB внутренним форматом даты является векторный формат, который состоит из следующих элементов [год месяц день час минута секунда].

В системе MATLAB есть специальные функции, которые преобразовывают форматы даты.

Пример
В системе MATLAB используется три формата даты:

Числовой формат 729300
Строковый формат 02-Oct-1996
Векторный формат 1996 10 2 0 0 0

Преобразование форматов дат. Для преобразования форматов дат предназнвчены следующие функции:

datenum Преобразует строковый формат даты в числовой
datestr Преобразует числовой формат в строковый
datevec Преобразует числовой или строковый формат в векторный

Пример.
Рассмотрим следующие преобразования форматов даты:

            d1 = datenum('02-Oct-1996')
             d1 = 729300
             d2 = datestr(d1+10)
             d2 = 12-Oct-1996
             dv1 = datevec(d1)
             dv1 = 1996 10 2 0 0 0
             dv2 = datevec(d2)
             dv2 = 1996 10 12 0 0 0

Строковый форматы даты. Функция datenum, которая преобразует строковое представление в числовое, имеет важное значение для организации эффективных вычислений. Функция datenum допускает представление аргумента в одном из следующих форматов: 'dd-mmm-yyyy', 'mm/dd/yyyy', 'dd-mmm-yyyy, hh:mm:ss.ss' . Таким образом можно сформировать до шести полей из символов и цифр:

  • поле dd - целое число от 1 до 31;
  • поле месяца mm или mmm является, либо целым числом от 1 до 12, либо строкой из трёх символов;
  • поле года yyyy или yy - не отрицательное целое число; если указано только две цифры, то предполагается, что это 19yy; если год опущен, то по умолчанию принимается текущий год;
  • поля часов, минут и секунд hh:mm:ss.ss - необязательные. Это целые числа, разделённые двоеточиями, за которыми могут следовать атрибуты 'am' (ante meridiem -до полудня) или 'pm' (post meridiem - после полудня).

Пример

Все представленные даты эквивалентны, если текущий год - 1998:

'01-Jun-1998' 'Jun 01, 1998'
'01-Jun-98' '06/01/98'
'01-Jun' '06/01'

Следующие два представления также эквивалентны:

             '01-Jun-1998, 18:30'
             '06/01/98/6:30 pm'

Обратите внимание, что заданный по умолчанию формат ввода даты в виде чисел следует принятому в США, то есть 6/1 - 1 июня, а не 6 января.

Если вводится вектор-столбец дат в строковом формате, то убедитесь, что все строки имеют одинаковую длину. По мере необходимости заполните их пробелами или нулями.

Форматы вывода. Функция datestr(D, номер формата) преобразовывает числовой формат даты D в один из 19 выходных строковых форматов даты и времени.

По умолчанию, для строкового представления даты используется формат день-месяц-год: 01-Mar-1996. Чтобы выбрать альтернативный формат, надо использовать один из номеров форматов, указанных в таблице.

Номер фората Формат Описание
0 01-Mar-1996 День-месяц-год
1 01-Mar-1996 15:45:17 День-месяц-год час:минута:секунда
2 03/01/96 Месяц/день/год
3 Mar Месяц, (три буквы)
4 M Месяц, (одна буква)
5 3 Месяц
6 03/01 Месяц/день
7 1 День месяца
8 Wed День недели, (три буквы)
9 W День недели, (одна буква)
10 1996 Год, (четыре цифры)
11 96 Год, (две цифры)
12 Mar96 Месяц год
13 15:45:17 Час: минута:секунда
14 03:45:17 PM Час:минута:секунда (AM или PM)
15 15:45 Час:минута
16 03:45 PM Час:минута (AM или PM)
17 Q1-96 Квартал - год
18 Q1 Квартал

               d = '01-Mar-1996'
               d = 01-Mar-1996

datestr(d) datestr(d, 2) datestr(d, 17)
ans = 01-Mar-1996 ans = 03/01/96 ans = Q1-96

Текущая дата и время. Функция date возвращает текущую дату в строковом формате:

       date
       ans = 02-Oct-1996
       Функция now возвращает числовой формат текущих даты и времени:
       now
       ans =  729300.71
       datestr(now)
       ans = 02-Oct-1996 16:56:16
       datestr(floor(now))
       ans = 02-Oct-1996

  В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель

 


Поиск по сайту:

Система Orphus

Яндекс.Метрика