timetable

Массив Timetable с штампованными по времени строками и переменными разных типов

Описание

timetable - тип таблицы, связывающий время с каждой строкой. Как и таблицы, в расписаниях хранятся ориентированные на столбцы переменные данных, которые могут иметь различные типы данных и размеры, пока они имеют одинаковое число строк. В сложение расписания обеспечивают специфичные для времени функции для выравнивания, объединения и выполнения вычислений с данными с отметкой времени в одном или нескольких расписаниях.

Время по строкам расписания datetime или duration значения, которые помечают строки. Вы можете индексировать в расписание по времени строки и переменной. Для индекса в расписание используйте сглаженные круглые скобки () чтобы вернуть подтаблицу или фигурные скобки {} для извлечения содержимого. Вы можете ссылаться на переменные и вектор времени строки, используя имена. Для получения дополнительной информации об индексации смотрите Выбор времени в Timetable и Доступ к данным в таблицы.

Создание

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

Преобразование:

  • Массив, используйте array2timetable функция.

  • Таблица, используйте table2timetable функция.

  • Временные ряды, используйте ts2timetable функция.

Кроме того, можно использовать timetable функция, описанная ниже. Составьте расписание из входных массивов или предварительно выделите пространство для переменных, значения которых заполняются позже. Чтобы задать время строки, можно использовать вектор входа времени строки или создать время строки с помощью частоты дискретизации или временного шага.

Описание

Создание из входных массивов

пример

TT = timetable(rowTimes,var1,...,varN) создает расписание из входных переменных данных var1,...,varN и временной вектор rowTimes. Переменные данных могут иметь различные размеры и типы данных, пока они имеют одинаковое число строк. rowTimes должен быть datetime или duration вектор, также с одинаковым числом строк.

пример

TT = timetable(var1,...,varN,'RowTimes',rowTimes) задает rowTimes как источник времени строки TT. Когда вы используете этот синтаксис, имя вектора времени строки TT всегда Time, даже когда rowTimes - переменная рабочей области с другим именем.

пример

TT = timetable(var1,...,varN,'SampleRate',Fs) использует частоту дискретизации Fs для вычисления регулярно разнесенных значений времени по строкам. Fs является положительным числовым скаляром, который задает количество выборок в секунду (Гц). Время первой строки равняется нулю секунд.

пример

TT = timetable(var1,...,varN,'TimeStep',dt) использует временной шаг dt для вычисления регулярно разнесенных значений времени по строкам. dt является duration или calendarDuration значение, которое задает интервал времени между последовательными временами строк. Время первой строки равняется нулю секунд.

Предварительное назначение переменных расписания

пример

TT = timetable('Size',sz,'VariableTypes',varTypes,'RowTimes',rowTimes) создает расписание и предварительно выделяет пространство для переменных с заданными типами данных. sz является двухэлементным числовым массивом, где sz(1) задает количество строк и sz(2) задает количество переменных. varTypes задает типы данных переменных. Количество раз в rowTimes должен равняться sz(1).

пример

TT = timetable('Size',sz,'VariableTypes',varTypes,'SampleRate',Fs) предварительно выделяет переменные с типами данных и добавляет время строк с помощью частоты дискретизации Fs. Время первой строки равняется нулю секунд.

пример

TT = timetable('Size',sz,'VariableTypes',varTypes,'TimeStep',dt) предварительно выделяет переменные с типами данных и добавляет время строк с помощью временного шага dt. Время первой строки равняется нулю секунд.

Установите имена переменных, имена размерностей или время запуска

пример

TT = timetable(___,Name,Value) задает дополнительные входные параметры, используя один или несколько аргументы пары "имя-значение". Для примера можно задать имена переменных с помощью 'VariableNames' Пара "имя-значение". Вы также можете задать время начала с помощью 'StartTime' пара "имя-значение" с частотой дискретизации или временным шагом. Можно использовать этот синтаксис с любым из входных параметров предыдущих синтаксисов.

Входные параметры

расширить все

Входные переменные, заданные как массивы с одинаковым числом строк. Переменные входы могут иметь различные размеры и различные типы данных, если они имеют одинаковое число строк.

Общие входные переменные - это числовые массивы, логические массивы, строковые массивы, массивы структур и массивы ячеек.

Входными переменными также могут быть объекты, которые являются массивами. Такой массив должен поддерживать индексацию формы var(index1,...,indexN), где index1 - числовой или логический вектор, который соответствует строкам переменной var. В сложение массив должен реализовать оба vertcat метод и size метод с dim аргумент.

Время, сопоставленное со строками расписания, задается как datetime вектор или duration вектор. Каждый раз помечает строку в выход расписании TT. Значения времени в rowTimes не должны быть уникальными, сортированными или регулярными.

Размер предварительно выделенного расписания, заданный как двухэлементный числовой вектор. Первый элемент sz задает количество строк, а второй элемент задает количество переменных расписания.

Типы данных предварительно выделенных переменных, заданные как массив ячеек из векторов символов или строковые массивы. Количество типов, заданное как varTypes должно равняться количеству переменных, заданному вторым элементом sz.

varTypes может содержать имена любых типов данных, включая имена, показанные в таблице.

Имя типа данных

Начальное значение в каждом элементе

'double''single'

Двойная или одинарная точность 0

'doublenan', 'doubleNaN''singlenan', 'singleNaN'

Двойная или одинарная точность NaN

'int8''int16''int32''int64'

Подписано 8-, 16-, 32- или 64-битное целое число 0

'uint8''uint16''uint32''uint64'

Беззнаковое 8-, 16-, 32- или 64-битное целое число 0

'logical'

0 (false)

'categorical'

<undefined> категориальное значение

'datetime'

NaT datetime значение

'duration'

0 секунд, как duration значение

'calendarDuration'

0 дней, как calendarDuration значение

'string'

"" (строка 1 на 1 без символов)

'cellstr'

{''} (камера с символьным массивом 0 на 0)

'cell'

{[]} (камера с двойным массивом 0 на 0)

'struct'

Скалярная структура без полей

'table'

Таблица без переменных

'timetable'

Расписание без переменных и NaT для времени строки

Для любого другого типа данных начальным значением является значение, используемое этим типом или классом для «заполнения» неназначенных элементов массива.

Если вы задаете 'char' как тип данных, затем timetable предварительно выделяет соответствующую переменную как массив ячеек из векторов символов, а не как символьный массив. Лучшая практика состоит в том, чтобы избегать создания переменных table или timetable, которые являются символьными массивами. При работе с текстовыми данными в таблице или timetable рассмотрите использование строковых массивов или категориального массива.

Частота дискретизации, заданная как положительный числовой скаляр. Fs задает количество выборок в секунду (Гц).

Временной шаг, заданный как duration скаляр или calendarDuration скаляр.

Если вы задаете dt как calendarDuration значение, и вы задаете 'StartTime' Аргумент пары "имя-значение", затем значение 'StartTime' должен быть datetime скаляр.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: TT = timetable(rowTimes,T,W,'VariableNames',{'Temperature','WindSpeed'}) создает расписание из входных массивов T и W, и называет соответствующие переменные расписания Temperature и WindSpeed.

Имена переменных, заданные как массив ячеек из векторов символов или строковые массивы, элементы которого непусты и различны.

  • Количество имен в массиве должно равняться количеству переменных timetable.

  • timetable функция также хранит имена переменных в VariableNames свойство расписания.

  • Имена переменных могут иметь любой Юникод® символы, включая пространства и символы, отличные от ASCII.

Начиная с R2021a

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

  • timetable функция также хранит имена размерностей в DimensionNames свойство расписания.

  • Имена размерностей могут иметь любые символы Юникода, включая пространства и символы, отличные от ASCII.

Перед R2021a можно задать имена размерностей только путем установки DimensionNames свойство.

Время запуска, заданное как datetime скаляр или duration скаляр. Время запуска также является временем строки первой строки расписания.

Можно задать 'StartTime' только когда вы также задаете 'SampleRate' или 'TimeStep' аргумент пары "имя-значение".

  • Если время запуска datetime значение, затем время строки TT являются datetime значения.

  • Если время запуска duration значение, тогда время строки является длительностью.

  • Если временной шаг dt является calendarDuration значение, тогда время начала должно быть datetime значение.

Свойства

расширить все

Доступ к свойствам метаданных Timetable

Расписание содержит свойства метаданных, которые описывают расписание, время его строки и его переменные. Доступ к этим свойствам с помощью синтаксиса timetableName.Properties. PropertyName, где PropertyName - имя свойства. Для примера можно получить доступ к именам переменных в расписании TT через TT.Properties.VariableNames свойство.

Можно вернуть сводные данные свойств метаданных с помощью синтаксиса timetableName.Properties.

Расписания обеспечивают доступ к метаданным через Properties свойство, поскольку вы можете получить доступ к данным расписания непосредственно с помощью синтаксиса точки. Для примера, если timetable TT имеет переменную с именем Var1, тогда вы можете получить доступ к значениям в переменной с помощью синтаксиса TT.Var1.

Метаданные расписания

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

  • Имена размерностей могут иметь любые символы Юникода, включая пространства и символы, отличные от ASCII.

  • Если вы задаете это свойство с помощью строковых массивов, то оно преобразуется и сохраняется как массив ячеек из векторов символов.

Вы можете получить доступ к данным расписания с помощью двух имен размерностей.

  • Если вы используете синтаксис точки и имя первой размерности, то вы можете получить доступ к времени строки как вектор.

  • Если вы используете синтаксис точки и имя второго измерения, то данные от всех переменных объединяются в один массив, как если бы вы индексировали в расписание с помощью {:,:} синтаксис.

Пример

Составьте расписание и отобразите его имена размерностей. Вы можете получить доступ к времени строки и данным, используя имена размерностей с синтаксисом точки.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.DimensionNames
ans = 1x2 cell
    {'Time'}    {'Variables'}

Доступ к строке с помощью имени первой размерности.

TT.Time
ans = 3x1 datetime
   18-Dec-2015
   19-Dec-2015
   20-Dec-2015

Доступ к данным осуществляется с помощью имени второго измерения. Этот синтаксис эквивалентен TT{:,:,}.

TT.Variables
ans = 3×3

   37.3000   30.1000   13.4000
   39.1000   30.0300    6.5000
   42.3000   29.9000    7.3000

Измените имена его размерностей с помощью Properties.DimensionNames свойство. Изменив имена размерностей, можно получить доступ к времени строки и данным с помощью синтаксисов TT.Date и TT.WeatherData соответственно.

TT.Properties.DimensionNames = {'Date','WeatherData'};
TT.Properties
ans = 
  TimetableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Date'  'WeatherData'}
           VariableNames: {'Var1'  'Var2'  'Var3'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [3x1 datetime]
               StartTime: 18-Dec-2015
              SampleRate: NaN
                TimeStep: 1d
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

Описание расписания, заданное как вектор символов или строковый скаляр. Это описание видим при использовании summary функция.

Если вы задаете это свойство с помощью строкового скаляра, то оно преобразуется и сохраняется как вектор символов.

Пример

Составьте расписание. Измените имена переменных и описание расписания. Отображение сводных данных результатов.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'};
TT.Properties.Description = 'Weather Data from December 2015';
summary(TT)
Description:  Weather Data from December 2015

RowTimes:

    Time: 3x1 datetime
        Values:
            Min           18-Dec-2015 
            Median        19-Dec-2015 
            Max           20-Dec-2015 
            TimeStep      24:00:00    

Variables:

    Temp: 3x1 double

        Values:

            Min         37.3  
            Median      39.1  
            Max         42.3  

    Pressure: 3x1 double

        Values:

            Min         29.9  
            Median     30.03  
            Max         30.1  

    WindSpeed: 3x1 double

        Values:

            Min          6.5  
            Median       7.3  
            Max         13.4  

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

Пример

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

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'};
Fahrenheit2Celsius = @(x) (5.0/9.0).*(x - 32);
TT.Properties.UserData = Fahrenheit2Celsius;
TT.Properties
ans = 
  TimetableProperties with properties:

             Description: ''
                UserData: @(x)(5.0/9.0).*(x-32)
          DimensionNames: {'Time'  'Variables'}
           VariableNames: {'Temp'  'Pressure'  'WindSpeed'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [3x1 datetime]
               StartTime: 18-Dec-2015
              SampleRate: NaN
                TimeStep: 1d
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

Метаданные времени строк

Количество строк, заданное как datetime вектор или duration вектор.

  • Должно быть время строки для каждой строки расписания.

  • Расписание может иметь время строки, которые являются повторяющимися, вне порядка точности или NaT или NaN значения.

  • Время строк отображается при просмотре расписания. Кроме того, для доступа к данным расписания можно использовать значения времени строк в круглых скобках или фигурных скобках.

  • Другой способ получить доступ к времени строки - использовать синтаксис точки и имя первой размерности расписания.

Пример

Составьте расписание. Затем замените время ее строки с помощью Properties.RowTimes свойство.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3])
TT=3×3 timetable
       Time        Var1    Var2     Var3
    ___________    ____    _____    ____

    18-Dec-2015    37.3     30.1    13.4
    19-Dec-2015    39.1    30.03     6.5
    20-Dec-2015    42.3     29.9     7.3

Dates = datetime(2017,1,1:3);
TT.Properties.RowTimes = Dates
TT=3×3 timetable
       Time        Var1    Var2     Var3
    ___________    ____    _____    ____

    01-Jan-2017    37.3     30.1    13.4
    02-Jan-2017    39.1    30.03     6.5
    03-Jan-2017    42.3     29.9     7.3

Другой способ доступа к времени строки - это использование синтаксиса точки с именем первой размерности timetable.

TT.Properties.DimensionNames
ans = 1x2 cell
    {'Time'}    {'Variables'}

TT.Time
ans = 3x1 datetime
   01-Jan-2017
   02-Jan-2017
   03-Jan-2017

Время начала строки, заданное как datetime скаляр или duration скаляр. Время запуска равно времени строки для первой строки расписания и имеет совпадающий тип данных.

  • Если время запуска datetime значение, затем время строки TT являются datetime значения.

  • Если время запуска duration значение, тогда время строки является длительностью.

  • Если временной шаг является calendarDuration значение, тогда время начала должно быть datetime значение.

Если расписание пустое, то время запуска NaN.

Пример

Составьте расписание. В этом расписании временной шаг между последовательными строками не тот, поэтому расписание нерегулярно.

TT = timetable(datetime({'2015-12-18';'2015-12-20';'2015-12-21'}), ...
               [37.3;39.1;42.3],[13.4;6.5;7.3],{'N';'SE';'NW'});
TT.Properties.VariableNames = {'Temperature','WindSpeed','WindDirection'}
TT=3×3 timetable
       Time        Temperature    WindSpeed    WindDirection
    ___________    ___________    _________    _____________

    18-Dec-2015       37.3          13.4          {'N' }    
    20-Dec-2015       39.1           6.5          {'SE'}    
    21-Dec-2015       42.3           7.3          {'NW'}    

Отобразите его свойства. Значение StartTime свойство равно времени первой строки. Является ли расписание регулярным или неправильным, у него всегда есть время запуска, если только он не пуст.

TT.Properties
ans = 
  TimetableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Time'  'Variables'}
           VariableNames: {'Temperature'  'WindSpeed'  'WindDirection'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [3x1 datetime]
               StartTime: 18-Dec-2015
              SampleRate: NaN
                TimeStep: NaN
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

Измените StartTime свойство. Обратите внимание, что все строки имеют новые значения. Для каждого времени строки изменение значения равно различию между исходным значением времени первой строки и новым временем запуска.

TT.Properties.StartTime = datetime('2018-04-09')
TT=3×3 timetable
       Time        Temperature    WindSpeed    WindDirection
    ___________    ___________    _________    _____________

    09-Apr-2018       37.3          13.4          {'N' }    
    11-Apr-2018       39.1           6.5          {'SE'}    
    12-Apr-2018       42.3           7.3          {'NW'}    

Частота дискретизации, заданная как положительный числовой скаляр. Частота дискретизации является количеством выборок в секунду (Гц).

Если время строки не является регулярным, или расписание пустое, то частота дискретизации NaN.

Пример

Временной шаг, заданный как duration скаляр или calendarDuration скаляр.

  • Если вы задаете временной шаг как calendarDuration значение (для примера, календарных месяцев), тогда вектор времени строки должен быть datetime вектор.

  • Если вы задаете временной шаг как duration значение (для примера, секунд), тогда вектор времени строки или может быть datetime или duration вектор.

Если время строки не является регулярным, или расписание пустое, то временной шаг NaN.

Пример

Составьте регулярное расписание. В этом расписании время строки является длительностью, созданной с использованием того же временного шага.

Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'TimeStep',seconds(0.01))
TT=5×1 timetable
      Time      Intensity
    ________    _________

    0 sec           100  
    0.01 sec       98.7  
    0.02 sec       95.2  
    0.03 sec      101.4  
    0.04 sec       99.1  

Отобразите его свойства. The TimeStep свойство сохраняет временной шаг как длительность.

TT.Properties
ans = 
  TimetableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Time'  'Variables'}
           VariableNames: {'Intensity'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [5x1 duration]
               StartTime: 0 sec
              SampleRate: 100
                TimeStep: 0.01 sec
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

Измените TimeStep свойство. Время запуска то же самое, но все другие строки различаются, потому что временной шаг больше. Однако переменная Intensity остается прежним.

TT.Properties.TimeStep = seconds(0.04)
TT=5×1 timetable
      Time      Intensity
    ________    _________

    0 sec           100  
    0.04 sec       98.7  
    0.08 sec       95.2  
    0.12 sec      101.4  
    0.16 sec       99.1  

Переменные метаданные

Имена переменных, заданные как массив ячеек из векторов символов или строковых массивов, элементы которого являются непустыми и различными. Количество имен должно равняться количеству переменных.

  • Имена переменных могут иметь любые символы Юникода, включая пространства и символы, отличные от ASCII.

  • Имена переменных видны при просмотре расписания и при использовании summary функция. Кроме того, для доступа к данным таблицы можно использовать имена переменных в круглых скобках, фигурных скобках или с индексацией точек.

  • Если вы задаете это свойство с помощью строковых массивов, то оно преобразуется и сохраняется как массив ячеек из векторов символов.

Пример

Составьте расписание с именами переменных по умолчанию. Затем измените имена, используя Properties.VariableNames свойство.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3])
TT=3×3 timetable
       Time        Var1    Var2     Var3
    ___________    ____    _____    ____

    18-Dec-2015    37.3     30.1    13.4
    19-Dec-2015    39.1    30.03     6.5
    20-Dec-2015    42.3     29.9     7.3

TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'}
TT=3×3 timetable
       Time        Temp    Pressure    WindSpeed
    ___________    ____    ________    _________

    18-Dec-2015    37.3      30.1        13.4   
    19-Dec-2015    39.1     30.03         6.5   
    20-Dec-2015    42.3      29.9         7.3   

Основным способом отображения и изменения переменных является доступ к ним по имени с помощью синтаксиса точки.

TT.Temp
ans = 3×1

   37.3000
   39.1000
   42.3000

TT.Pressure(3) = 30
TT=3×3 timetable
       Time        Temp    Pressure    WindSpeed
    ___________    ____    ________    _________

    18-Dec-2015    37.3      30.1        13.4   
    19-Dec-2015    39.1     30.03         6.5   
    20-Dec-2015    42.3        30         7.3   

Описания переменных, заданные как массив ячеек из векторов символов или строковые массивы. Это свойство может быть пустым массивом ячеек, который является значением по умолчанию. Если массив не пуст, то он должен содержать столько элементов, сколько есть переменных. Можно задать отдельный пустой символьный вектор или пустую строку для переменной, которая не имеет описания.

  • Описания переменных видны при использовании summary функция.

  • Если вы задаете это свойство с помощью строковых массивов, то оно преобразуется и сохраняется как массив ячеек из векторов символов.

Пример

Составьте расписание. Измените имена и описания переменных. Отображение сводных данных результатов.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'};
TT.Properties.VariableDescriptions = {'Temperature (external)', ...
                                      'Pressure in Hg', ...
                                      'Wind speed at sensor 123'};
summary(TT)
RowTimes:

    Time: 3x1 datetime
        Values:
            Min           18-Dec-2015 
            Median        19-Dec-2015 
            Max           20-Dec-2015 
            TimeStep      24:00:00    

Variables:

    Temp: 3x1 double

        Properties:
            Description:  Temperature (external)
        Values:

            Min         37.3  
            Median      39.1  
            Max         42.3  

    Pressure: 3x1 double

        Properties:
            Description:  Pressure in Hg
        Values:

            Min         29.9  
            Median     30.03  
            Max         30.1  

    WindSpeed: 3x1 double

        Properties:
            Description:  Wind speed at sensor 123
        Values:

            Min          6.5  
            Median       7.3  
            Max         13.4  

Переменные модули, заданные как массив ячеек из векторов символов или строковые массивы. Это свойство может быть пустым массивом ячеек, который является значением по умолчанию. Если массив не пуст, то он должен содержать столько элементов, сколько есть переменных. Можно задать отдельный пустой символьный вектор или пустую строку для переменной, которая не имеет модулей.

  • Переменные модули видны при использовании summary функция.

  • Если вы задаете это свойство с помощью строковых массивов, то оно преобразуется и сохраняется как массив ячеек из векторов символов.

Пример

Составьте расписание. Измените имена переменных и модулей. Отображение сводных данных результатов.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'};
TT.Properties.VariableUnits = {'degrees F','mm Hg','mph'};
summary(TT)
RowTimes:

    Time: 3x1 datetime
        Values:
            Min           18-Dec-2015 
            Median        19-Dec-2015 
            Max           20-Dec-2015 
            TimeStep      24:00:00    

Variables:

    Temp: 3x1 double

        Properties:
            Units:  degrees F
        Values:

            Min         37.3  
            Median      39.1  
            Max         42.3  

    Pressure: 3x1 double

        Properties:
            Units:  mm Hg
        Values:

            Min         29.9  
            Median     30.03  
            Max         30.1  

    WindSpeed: 3x1 double

        Properties:
            Units:  mph
        Values:

            Min          6.5  
            Median       7.3  
            Max         13.4  

Статус как непрерывные или дискретные переменные, заданный как массив ячеек из векторов символов или строковые массивы. Это свойство может быть пустым массивом, который по умолчанию. Если массив не пуст, то он должен содержать столько элементов, сколько есть переменных. Каждый элемент может быть любым 'unset', 'continuous', 'step', или 'event'.

Значения в VariableContinuity повлиять на то, как retime или synchronize работают функции. Если вы задаете VariableContinuity и звоните retime или synchronize, тогда вам не нужно указывать метод. Вместо этого, retime и synchronize заполнить выход переменные расписания следующими методами по умолчанию:

  • 'unset' - Заполните значения, используя индикатор недостающих данных для этого типа (например NaN для числовых переменных).

  • 'continuous' - Заполните значения с помощью линейной интерполяции.

  • 'step' - Заполните значения с помощью предыдущего значения.

  • 'event' - Заполните значения, используя индикатор недостающих данных для этого типа (например NaN для числовых переменных).

Если вы задаете метод как входной параметр retime или synchronize, затем этот метод переопределяет значения, которые вы задаете в VariableContinuity.

Для получения дополнительной информации об использовании VariableContinuity свойство, см. «Повторное время» и «Синхронизация переменных Timetable с использованием различных методов».

Пример

Составьте расписание. Задайте matlab.tabular.Continuity значение для каждой переменной.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[13.4;6.5;7.3],{'N';'SE';'NW'});
TT.Properties.VariableNames = {'Temperature','WindSpeed','WindDirection'};
TT.Properties.VariableContinuity = {'continuous','event','event'};
TT.Properties
ans = 
  TimetableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Time'  'Variables'}
           VariableNames: {'Temperature'  'WindSpeed'  'WindDirection'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: [continuous    event    event]
                RowTimes: [3x1 datetime]
               StartTime: 18-Dec-2015
              SampleRate: NaN
                TimeStep: 1d
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

Пользовательские метаданные

Настроенные метаданные расписания и его переменных, заданные как CustomProperties объект.

The CustomProperties объект является контейнером для настраиваемых метаданных, которые можно добавить в расписание. По умолчанию CustomProperties имеет нулевые свойства. Каждое свойство, к которому вы добавляете CustomProperties может содержать либо метаданные таблицы, либо переменные метаданные. Если свойство содержит метаданные переменной, то его значение должно быть массивом, а количество элементов в массиве должно равняться количеству переменных timetable.

  • Чтобы добавить свойства для настраиваемых метаданных в расписание, используйте addprop функция.

  • Для доступа или изменения настроенных метаданных используйте синтаксис timetableName.Properties. CustomProperties. PropertyName. В этом синтаксисе PropertyName - имя, которое вы выбрали при добавлении этого свойства с помощью addprop.

  • Чтобы удалить свойства, используйте rmprop функция.

Примечание: Вы можете добавить или удалить только свойства для настраиваемых метаданных, используя addprop и rmprop. Вы не можете добавить или удалить свойства timetableName.Properties объект.

Пример

Составьте расписание, содержащее данные о погоде.

TT = timetable(datetime({'2015-12-18';'2015-12-20';'2015-12-21'}), ...
               [37.3;39.1;42.3],[13.4;6.5;7.3],{'N';'SE';'NW'});
TT.Properties.VariableNames = {'Temperature','WindSpeed','WindDirection'}
TT=3×3 timetable
       Time        Temperature    WindSpeed    WindDirection
    ___________    ___________    _________    _____________

    18-Dec-2015       37.3          13.4          {'N' }    
    20-Dec-2015       39.1           6.5          {'SE'}    
    21-Dec-2015       42.3           7.3          {'NW'}    

Чтобы описать инструменты, которые измерили эти данные, и имя выходного файла, добавьте настроенные метаданные с помощью addprop функция. The Instruments свойство имеет переменные метаданные, которые применяются к переменным TT. The OutputFile свойство имеет метаданные таблицы.

TT = addprop(TT,{'Instruments','OutputFile'},{'variable','table'});
TT.Properties
ans = 
  TimetableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Time'  'Variables'}
           VariableNames: {'Temperature'  'WindSpeed'  'WindDirection'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [3x1 datetime]
               StartTime: 18-Dec-2015
              SampleRate: NaN
                TimeStep: NaN

   Custom Properties (access using t.Properties.CustomProperties.<name>):
              OutputFile: []
             Instruments: []

Присвойте значения настраиваемым метаданным с помощью синтаксиса точки. Когда вы присваиваете массив текстовых значений настраиваемым метаданным, лучшая практика - использовать строковые массивы, а не массив ячеек из векторов символов. Если свойство CustomProperties - массив ячеек из векторов символов, тогда не существует механизма, препятствующего последующему назначению нетекстовых значений в качестве элементов массива ячеек.

TT.Properties.CustomProperties.Instruments = ["thermometer","anemometer","wind vane"];
TT.Properties.CustomProperties.OutputFile = 'weatherReadings.csv';
TT.Properties
ans = 
  TimetableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Time'  'Variables'}
           VariableNames: {'Temperature'  'WindSpeed'  'WindDirection'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [3x1 datetime]
               StartTime: 18-Dec-2015
              SampleRate: NaN
                TimeStep: NaN

   Custom Properties (access using t.Properties.CustomProperties.<name>):
              OutputFile: 'weatherReadings.csv'
             Instruments: ["thermometer"    "anemometer"    "wind vane"]

Удалите OutputFile свойство от TT.

TT = rmprop(TT,'OutputFile');
TT.Properties
ans = 
  TimetableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Time'  'Variables'}
           VariableNames: {'Temperature'  'WindSpeed'  'WindDirection'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [3x1 datetime]
               StartTime: 18-Dec-2015
              SampleRate: NaN
                TimeStep: NaN

   Custom Properties (access using t.Properties.CustomProperties.<name>):
             Instruments: ["thermometer"    "anemometer"    "wind vane"]

Примеры

свернуть все

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

Составьте расписание из переменных рабочей области. Значения в MeasurementTime стать строковым временем расписания. Все другие входные параметры становятся переменными timetable. Когда вы используете этот синтаксис, имена вектора времени строка и переменные TT являются именами соответствующих входных параметров.

MeasurementTime = datetime({'2015-12-18 08:03:05';'2015-12-18 10:03:17';'2015-12-18 12:03:13'});
Temp = [37.3;39.1;42.3];
Pressure = [30.1;30.03;29.9];
WindSpeed = [13.4;6.5;7.3];
TT = timetable(MeasurementTime,Temp,Pressure,WindSpeed)
TT=3×3 timetable
      MeasurementTime       Temp    Pressure    WindSpeed
    ____________________    ____    ________    _________

    18-Dec-2015 08:03:05    37.3      30.1        13.4   
    18-Dec-2015 10:03:17    39.1     30.03         6.5   
    18-Dec-2015 12:03:13    42.3      29.9         7.3   

Синхронизируйте данные о погоде с обычным временем с помощью почасового временного шага. Настройте данные в новое время с помощью линейной интерполяции.

TT2 = retime(TT,'hourly','linear')
TT2=6×3 timetable
      MeasurementTime        Temp     Pressure    WindSpeed
    ____________________    ______    ________    _________

    18-Dec-2015 08:00:00    37.254     30.102      13.577  
    18-Dec-2015 09:00:00    38.152     30.067      10.133  
    18-Dec-2015 10:00:00    39.051     30.032      6.6885  
    18-Dec-2015 11:00:00    40.613     29.969      6.8783  
    18-Dec-2015 12:00:00    42.214     29.903      7.2785  
    18-Dec-2015 13:00:00    43.815     29.838      7.6788  

Поскольку время строки выхода не является измеренным временем, переименуйте вектор времени строки. Этот вектор также является именем первой размерности расписания.

TT2.Properties.DimensionNames{1} = 'InterpolatedTimes'
TT2=6×3 timetable
     InterpolatedTimes       Temp     Pressure    WindSpeed
    ____________________    ______    ________    _________

    18-Dec-2015 08:00:00    37.254     30.102      13.577  
    18-Dec-2015 09:00:00    38.152     30.067      10.133  
    18-Dec-2015 10:00:00    39.051     30.032      6.6885  
    18-Dec-2015 11:00:00    40.613     29.969      6.8783  
    18-Dec-2015 12:00:00    42.214     29.903      7.2785  
    18-Dec-2015 13:00:00    43.815     29.838      7.6788  

Аннотации TT2 с описанием. Можно аннотировать TT2 и его переменные с использованием метаданных, доступных через TT2.Properties.

TT2.Properties.Description = 'Weather data, interpolated to regular hourly times';
TT2.Properties
ans = 
  TimetableProperties with properties:

             Description: 'Weather data, interpolated to regular hourly times'
                UserData: []
          DimensionNames: {'InterpolatedTimes'  'Variables'}
           VariableNames: {'Temp'  'Pressure'  'WindSpeed'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [6x1 datetime]
               StartTime: 18-Dec-2015 08:00:00
              SampleRate: 2.7778e-04
                TimeStep: 01:00:00
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

Можно использовать синтаксис точки для доступа к времени строки расписания. Кроме того, вы можете получить доступ к отдельным переменным с помощью синтаксиса точки или ко всем данным в расписании с помощью его второго имени измерения.

Загрузите расписание из MAT-файла outdoors. Отобразите первые три строки.

load outdoors
outdoors(1:3,:)
ans=3×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:24        49          51.3          29.61   
    2015-11-15 01:30:24      48.9          51.5          29.61   
    2015-11-15 03:00:24      48.9          51.5          29.61   

Доступ к времени строки с помощью имени вектора времени строки. Это имя также является именем первой размерности расписания. outdoors сохраняет время строки как datetime вектор. Отобразите первые три раза.

outdoors.Time(1:3)
ans = 3x1 datetime
   2015-11-15 00:00:24
   2015-11-15 01:30:24
   2015-11-15 03:00:24

Доступ к температурам как к числовому вектору, используя его имя переменной.

outdoors.TemperatureF(1:3)
ans = 3×1

   51.3000
   51.5000
   51.5000

Доступ ко всем данным расписания как к матрице, используя синтаксис outdoors.Variables. Этот синтаксис использует имя второго измерения расписания и эквивалентно доступу ко всему содержимому с помощью фигурного индексирования скобок, outdoors{:,:}. Однако матрица не включает время строки, потому что вектор времени строки является метаданными расписания, а не переменной. Если данные расписания не могут быть объединены в матрицу, появляется сообщение об ошибке.

outdoors.Variables
ans = 51×3

   49.0000   51.3000   29.6100
   48.9000   51.5000   29.6100
   48.9000   51.5000   29.6100
   48.8000   51.5000   29.6100
   48.7000   51.5000   29.6000
   48.8000   51.5000   29.6000
   49.0000   51.5000   29.6000
   49.1000   51.3000   29.6000
   49.1000   51.3000   29.6100
   49.1000   51.5000   29.6100
      ⋮

Переименуйте второе измерение outdoors. Если вы измените имя, то для доступа к данным можно использовать новое имя.

outdoors.Properties.DimensionNames{2} = 'Data';
outdoors.Data
ans = 51×3

   49.0000   51.3000   29.6100
   48.9000   51.5000   29.6100
   48.9000   51.5000   29.6100
   48.8000   51.5000   29.6100
   48.7000   51.5000   29.6000
   48.8000   51.5000   29.6000
   49.0000   51.5000   29.6000
   49.1000   51.3000   29.6000
   49.1000   51.3000   29.6100
   49.1000   51.5000   29.6100
      ⋮

Составьте расписание с помощью 'RowTimes' аргумент пары "имя-значение". Обратите внимание, что имя вектора времени строки TT является Time, не MeasurementTime. Когда вы используете этот синтаксис, имя вектора времени строка всегда Time.

MeasurementTime = datetime({'2015-12-18 08:03:05';'2015-12-18 10:03:17';'2015-12-18 12:03:13'});
Temp = [37.3;39.1;42.3];
Pressure = [29.4;29.6;30.0];
Precip = [0.1;0.9;0.0];
StormDuration = [hours(1);hours(2);NaN];
TT = timetable(Temp,Pressure,Precip,StormDuration,'RowTimes',MeasurementTime)
TT=3×4 timetable
            Time            Temp    Pressure    Precip    StormDuration
    ____________________    ____    ________    ______    _____________

    18-Dec-2015 08:03:05    37.3      29.4       0.1           1 hr    
    18-Dec-2015 10:03:17    39.1      29.6       0.9           2 hr    
    18-Dec-2015 12:03:13    42.3        30         0         NaN hr    

Составьте расписание. Если существуют входные параметры, которые не являются переменными рабочей области, то timetable функция присваивает имена по умолчанию соответствующему вектору времени строки и переменным расписания. Для примера, если вы транспонируете некоторые входные параметры, чтобы сделать их векторами-столбцами, то эти входные параметры не являются переменными рабочей области. Имена по умолчанию Time для вектора времени строки и VarN для Nпервая переменная расписания.

T = hours(1:3);
Temp = [37.3;39.1;42.3];
P = [29.4 29.6 30];
TT = timetable(T',Temp,P')
TT=3×2 timetable
    Time    Temp    Var2
    ____    ____    ____

    1 hr    37.3    29.4
    2 hr    39.1    29.6
    3 hr    42.3      30

Составьте регулярное расписание с использованием частоты дискретизации 100 Гц.

Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'SampleRate',100)
TT=5×1 timetable
      Time      Intensity
    ________    _________

    0 sec           100  
    0.01 sec       98.7  
    0.02 sec       95.2  
    0.03 sec      101.4  
    0.04 sec       99.1  

Создайте расписание с 30 секундами в качестве времени первой строки. Чтобы задать время запуска, используйте 'StartTime' аргумент пары "имя-значение".

TT = timetable(Intensity,'SampleRate',100,'StartTime',seconds(30))
TT=5×1 timetable
      Time       Intensity
    _________    _________

    30 sec           100  
    30.01 sec       98.7  
    30.02 sec       95.2  
    30.03 sec      101.4  
    30.04 sec       99.1  

Составьте регулярное расписание с использованием временного шага 0,01 секунды. Необходимо задать временной шаг как duration или calendarDuration значение.

Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'TimeStep',seconds(0.01))
TT=5×1 timetable
      Time      Intensity
    ________    _________

    0 sec           100  
    0.01 sec       98.7  
    0.02 sec       95.2  
    0.03 sec      101.4  
    0.04 sec       99.1  

Создайте расписание с 30 секундами в качестве времени первой строки. Чтобы задать время запуска, используйте 'StartTime' аргумент пары "имя-значение".

TT = timetable(Intensity,'TimeStep',seconds(0.01),'StartTime',seconds(30))
TT=5×1 timetable
      Time       Intensity
    _________    _________

    30 sec           100  
    30.01 sec       98.7  
    30.02 sec       95.2  
    30.03 sec      101.4  
    30.04 sec       99.1  

Предварительно выделите таблицу путем определения ее размера и типов данных переменных. The timetable функция заполняет переменные значениями по умолчанию, которые подходят для заданных типов данных. Также задаются имена переменных по умолчанию.

T = [datetime('now') datetime(2017,11,1:3)];
sz = [4 3];
varTypes = {'double','double','string'};
TT = timetable('Size',sz,'VariableTypes',varTypes,'RowTimes',T)
TT=4×3 timetable
            Time            Var1    Var2      Var3   
    ____________________    ____    ____    _________

    23-Mar-2021 16:46:41     0       0      <missing>
    01-Nov-2017 00:00:00     0       0      <missing>
    02-Nov-2017 00:00:00     0       0      <missing>
    03-Nov-2017 00:00:00     0       0      <missing>

Чтобы задать имена для переменных, используйте 'VariableNames' аргумент пары "имя-значение".

varNames = {'Temperature','WindSpeed','Station'};
TT = timetable('Size',sz,'VariableTypes',varTypes,'RowTimes',T,'VariableNames',varNames)
TT=4×3 timetable
            Time            Temperature    WindSpeed     Station 
    ____________________    ___________    _________    _________

    23-Mar-2021 16:46:41         0             0        <missing>
    01-Nov-2017 00:00:00         0             0        <missing>
    02-Nov-2017 00:00:00         0             0        <missing>
    03-Nov-2017 00:00:00         0             0        <missing>

Добавьте строку данных к TT. Предварительное выделение может быть полезным методом, когда ваш код добавляет по одной строке данных или нескольким строкам данных за раз. Вместо увеличения расписания каждый раз, когда вы добавляете строку, можно заполнить табличные переменные, которые уже имеют место для ваших данных. Можно инкапсулировать строку значений данных в массив ячеек и назначить ее строке расписания.

Индексируйте строку по времени и присваивайте строку значений данных. Вы также можете подписываться на строки и переменные по номерам. Однако индексирование на расписание по времени является полезным методом.

TT(datetime(2017,11,2),:) = {48.2,13.33,"S1"}
TT=4×3 timetable
            Time            Temperature    WindSpeed     Station 
    ____________________    ___________    _________    _________

    23-Mar-2021 16:46:41          0              0      <missing>
    01-Nov-2017 00:00:00          0              0      <missing>
    02-Nov-2017 00:00:00       48.2          13.33      "S1"     
    03-Nov-2017 00:00:00          0              0      <missing>

Можно инкапсулировать строку значений данных в массив ячеек. При назначении строки из массива ячеек назначение преобразует массив ячеек в строку расписания.

Задайте частоту дискретизации 1000 Гц и предварительно выделите расписание. Можно также задать время запуска.

sz = [4 3];
varTypes = {'uint64','double','duration'};
TT = timetable('Size',sz,'VariableTypes',varTypes,'SampleRate',1000,'StartTime',seconds(15))
TT=4×3 timetable
       Time       Var1    Var2      Var3  
    __________    ____    ____    ________

    15 sec         0       0      00:00:00
    15.001 sec     0       0      00:00:00
    15.002 sec     0       0      00:00:00
    15.003 sec     0       0      00:00:00

Индексируйте в третью строку путем определения ее времени и добавляйте строку данных.

TT(seconds(15.002),:) = {50,1.37,minutes(76)}
TT=4×3 timetable
       Time       Var1    Var2      Var3  
    __________    ____    ____    ________

    15 sec          0        0    00:00:00
    15.001 sec      0        0    00:00:00
    15.002 sec     50     1.37    01:16:00
    15.003 sec      0        0    00:00:00

Задайте временной шаг и имена для переменных.

sz = [3 2];
varTypes = {'double','double'};
TT = timetable('Size',sz,'VariableTypes',varTypes,'TimeStep',seconds(0.1),'VariableNames',{'Intensity','Distance'})
TT=3×2 timetable
     Time      Intensity    Distance
    _______    _________    ________

    0 sec          0           0    
    0.1 sec        0           0    
    0.2 sec        0           0    

Индексируйте во вторую строку путем определения ее времени и добавляйте строку данных.

TT(seconds(0.1),:) = {93.6,11.27}
TT=3×2 timetable
     Time      Intensity    Distance
    _______    _________    ________

    0 sec           0            0  
    0.1 sec      93.6        11.27  
    0.2 sec         0            0  

Создайте расписание и укажите имена переменных расписания. Вектор времени строки является duration вектор, модулями которого являются секунды.

Time = seconds(1:5)';
TT = timetable(Time,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
               'VariableNames',{'Reading1','Reading2'})
TT=5×2 timetable
    Time     Reading1    Reading2
    _____    ________    ________

    1 sec        98        120   
    2 sec      97.5        111   
    3 sec      97.9        119   
    4 sec      98.1        117   
    5 sec      97.9        116   

Начиная с R2019b, вы можете задавать имена переменных расписания, которые не являются допустимыми идентификаторами MATLAB ®. Такие имена переменных могут включать пространства, символы, отличные от ASCII, и могут иметь любой символ в качестве начального символа.

Для примера используйте даты в качестве имен переменных timetable, которые содержат показания.

TT = timetable(Time,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
               'VariableNames',{'29-May-2019','30-May-2019'})
TT=5×2 timetable
    Time     29-May-2019    30-May-2019
    _____    ___________    ___________

    1 sec         98            120    
    2 sec       97.5            111    
    3 sec       97.9            119    
    4 sec       98.1            117    
    5 sec       97.9            116    

Чтобы использовать запись через точку, когда имя не является допустимым идентификатором, включите круглые скобки и кавычки.

TT.('29-May-2019')
ans = 5×1

   98.0000
   97.5000
   97.9000
   98.1000
   97.9000

Ограничения

  • Используйте одинарные кавычки для этих входных имен:

    • 'DimensionNames'R2021a года)

    • 'RowTimes'

    • 'SampleRate'

    • 'Size'

    • 'StartTime'

    • 'TimeStep'

    • 'VariableTypes'

    • 'VariableNames'

    Чтобы избежать путаницы с переменными входами, не используйте строковые скаляры с двойными кавычками (такие как "RowTimes") для этих имен.

Совет

  • Список функций, принимающих или возвращающих расписания, см. в разделе Расписания.

  • В некоторых случаях можно вызвать функцию timetable с синтаксисом, который задает регулярный временной шаг между временами строк и timetable возвращает неправильное расписание. Этот результат возникает, когда вы задаете временной шаг с помощью календарного модуля времени и существует строка времени, которая вводит неправильный шаг. Например, если вы создаете расписание с временным шагом в один календарный месяц, начиная с 31 января 2019 года, то оно нерегулярно относительно месяцев.

    stime = datetime(2019,1,31);
    tstep = calmonths(1);
    TT = timetable('Size',[3 1],'VariableTypes',{'double'},...
                   'TimeStep',tstep,'StartTime',stime)
    
    TT =
    
      3×1 timetable
    
           Time        Var1
        ___________    ____
    
        31-Jan-2019     0  
        28-Feb-2019     0  
        31-Mar-2019     0  
    

    Существуют и другие случаи, когда нарушения связаны со сдвигами времени сохранения на летнее время (DST) или временами строк, которые являются високосными секундами. Эта таблица задает значения времени строк и временные шаги, которые могут неожиданно создать неправильные расписания.

    Значение времени строки

    Временной шаг

    Время начала, заданное как 29, 30 или 31 день месяца.

    Количество календарных месяцев или кварталов.

    Время запуска указано как 29 февраля.

    Количество календарных лет.

    Любое время строки между 1:00 и 2:00 в день перехода от DST к стандартному времени (когда время строки задано как datetime значения, чей часовой пояс наблюдает DST).Количество календарных дней или месяцев.

    Любое время строки, которое является скачком секунды (когда время строки задано как datetime значения, чей часовой пояс является UTCLeapSeconds часовой пояс). Список високосных секунд см. в разделе leapseconds.

    Временной шаг, заданный в любом календарном модуле (дни, недели, месяцы, кварталы или годы).

Вопросы совместимости

расширить все

Поведение изменено в R2019b

Предупреждает, начиная с R2021a

Расширенные возможности

.
Введенный в R2016b