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