The timetable
тип данных является типом данных, подходящим для табличных данных с временными метками строк. Как и таблицы, расписания состоят из строк и столбцоориентированных переменных. Каждая переменная в расписании может иметь различные типы данных и другой размер с одним ограничением: каждая переменная должна иметь одинаковое число строк.
Время в строках расписания является временными значениями, которые помечают строки. Вы можете индексировать в расписание по времени строки и переменной. Для индекса в расписание используйте сглаженные круглые скобки ()
чтобы вернуть подтаблицу или фигурные скобки {}
для извлечения содержимого. Можно ссылаться на переменные и вектор времени строк по их именам. Для получения дополнительной информации смотрите Timetables.
Когда вы используете расписания с генерацией кода, придерживайтесь этих ограничений.
Для генерации кода используйте timetable
функция. Например, предположим, что входные аргументы в MATLAB® функция является тремя массивами, которые имеют одинаковое число строк (A
, B
, и C
), а datetime
или duration
вектор, содержащий время строки (D
) и массив ячеек с именами переменных (vnames
). Можно создать расписание, которое содержит эти массивы как переменные расписания.
function TT = foo(A,B,C,D,vnames) %#codegen TT = table(A,B,C,'RowTimes',D,'VariableNames',vnames); end
Чтобы преобразовать массивы и таблицы в timetables, используйте array2timetable
и table2timetable
функций. Для примера можно преобразовать вход M
-by- N
матрица к расписанию, где каждый столбец матрицы становится переменной в расписании. Назначьте время строки при помощи duration
вектор.
function TT = foo(A,D,vnames) %#codegen TT = array2timetable(A,'RowTimes',D,'VariableNames',vnames); end
Для генерации кода необходимо задать имена переменных расписания при создании расписания. Имена переменных Timetable не должны быть допустимыми идентификаторами MATLAB. Имена должны состоять из символов ASCII, но могут содержать любые символы ASCII (такие как запятые, штрихи и пробелы).
Время строки может иметь либо datetime
или duration
тип данных.
Для генерации кода вы ограничены операциями с расписаниями, перечисленными в этой таблице.
Операция | Пример | Примечания |
---|---|---|
Оператор назначения: |
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames); TT{:,1} = X; | Генерация кода не поддерживает использование оператора назначения
|
Операция индексации |
D = seconds(1:10); TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames); TT(seconds(3:7),1:3); | Генерация кода поддерживает индексацию по положению, переменной или времени строки и логическую индексацию. Кроме того, можно индексировать с помощью объектов, созданных при помощи Генерация кода поддерживает:
|
Конкатенация |
TT1 = timetable(A,B,C,'RowTimes',D1,'VariableNames',vnames); TT2 = timetable(D,E,F,'RowTimes',D2,'VariableNames',vnames); TT = [TT1 ; TT2]; | Генерация кода поддерживает конкатенацию по расписанию.
|
Для генерации кода можно использовать расписания с этими функциями MATLAB toolbox: