Значения в массиве длительности представляют истекшее время в единицах фиксированной длины, таких как часы, минуты и секунды. Вы можете создать истекшее время в терминах фиксированной длины (24 часа) и фиксированной длины (365 .2425 дня) лет.
Можно добавлять, вычитать, сортировать, сравнивать, конкатенировать и отображать массивы длительности.
Когда вы используете массивы длительности с генерацией кода, придерживайтесь этих ограничений.
Для генерации кода используйте duration
функция для создания массивов длительности. Например, предположим, что входные аргументы в MATLAB® функция является тремя числовыми массивами произвольного размера, элементы которых задают интервалы времени как часы, минуты и секунды. Можно создать массив длительности из этих трех входных массивов.
function d = foo(h,m,s) %#codegen d = duration(h,m,s); end
Вы можете использовать years
, days
, hours
, minutes
, seconds
, и milliseconds
функции для создания массивов длительности в единицах лет, дней, часов, минут или секунд. Для примера можно создать массив часов из входа числового массива.
function d = foo(h) %#codegen d = hours(h); end
Для генерации кода вы ограничены операциями с массивами длительности, перечисленными в этой таблице.
Операция | Пример | Примечания |
---|---|---|
оператор назначения: |
d = duration(1:3,0,0); d(1) = hours(5); | Генерация кода не поддерживает использование оператора назначения
|
реляционные операторы: |
d = duration(1:3,0,0); tf = d(1) < d(2); | Генерация кода поддерживает реляционные операторы. |
операция индексации |
d = duration(1:3,0,0); idx = [1 2]; d(idx); idx = logical([1 1 0]); d(idx); | Генерация кода поддерживает индексацию по положению, линейную индексацию и логическую индексацию. |
конкатенация |
d1 = duration(1:3,0,0); d2 = duration(4,30,0); d = [d1 d2]; | Генерация кода поддерживает конкатенацию массивов длительности. |
Для генерации кода можно использовать массивы длительности с этими функциями MATLAB toolbox: