Значения в массиве длительности представляют истекшее время в единицах фиксированной длины, таких как часы, минуты и секунды. Истекшее время можно создать в виде фиксированных (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: