exponenta event banner

расписание

Массив расписания со строками с отметками времени и переменными различных типов

Описание

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

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

Создание

Для создания расписания можно считывать данные из файла в таблицу с помощью 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 предварительно распределяет соответствующую переменную как массив ячеек символьных векторов, а не как символьный массив. Рекомендуется избегать создания переменных таблицы или расписания, которые являются массивами символов. При работе с текстовыми данными в таблице или расписании рекомендуется использовать строковый массив или категориальный массив.

Частота выборки, заданная как положительный числовой скаляр. 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 функция также сохраняет имена переменных в VariableNames свойство расписания.

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

С R2021a г.

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

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

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

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

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

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

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

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

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

Свойства

развернуть все

Свойства метаданных расписания доступа

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

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

Расписания обеспечивают доступ к метаданным через Properties свойство, поскольку доступ к данным расписания осуществляется непосредственно с помощью синтаксиса точек. Например, если расписание 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

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

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  

Отображение его свойств. 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 см. раздел Время восстановления и синхронизация переменных расписания с использованием различных методов.

Пример

Создайте расписание. Укажите 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 объект.

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

  • Чтобы добавить свойства настраиваемых метаданных в расписание, используйте 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 функция. Instruments свойство имеет метаданные переменных, которые применяются к переменным TT. 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 становятся временами строк расписания. Все остальные входные аргументы становятся переменными расписания. При использовании этого синтаксиса имена вектора времени строки и переменные 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  

Предварительно распределите таблицу, указав ее размер и типы данных переменных. 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, и могут иметь любой символ в качестве ведущего.

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

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 утра в день, переходящий с летнего времени на стандартное время (когда время строки указано как datetime значения, в часовом поясе которых соблюдается переход на летнее и зимнее время).Количество календарных дней или месяцев.

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

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

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

развернуть все

В R2019b изменилось поведение

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

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

.
Представлен в R2016b