Генерация кода для Timetables

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 тип данных.

Разрешенные операции в Timetables

Для генерации кода вы ограничены операциями с расписаниями, перечисленными в этой таблице.

ОперацияПримерПримечания

Оператор назначения: =

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);

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

Генерация кода поддерживает:

  • Индексация расписания с сглаженными круглыми скобками, ().

  • индексация содержимого фигурными скобками, {}.

  • Запись через точку для доступа к переменной timetable.

Конкатенация

TT1 = timetable(A,B,C,'RowTimes',D1,'VariableNames',vnames);
TT2 = timetable(D,E,F,'RowTimes',D2,'VariableNames',vnames);
TT = [TT1 ; TT2];

Генерация кода поддерживает конкатенацию по расписанию.

  • Для вертикальной конкатенации расписания должны иметь переменные с одинаковыми именами в том же порядке.

  • Для горизонтальной конкатенации расписания должны иметь одинаковое число строк. Они также должны иметь одинаковые значения времени по строкам в том же порядке.

Функции MATLAB Toolbox, поддерживающие Timetables

Для генерации кода можно использовать расписания с этими функциями MATLAB toolbox:

Похожие темы