Генерация кода для расписаний

timetable тип данных является типом данных, подходящим для табличных данных со строками с меткой времени. Как таблицы, расписания состоят из строк и ориентированных на столбец переменных. Каждая переменная в расписании может иметь другой тип данных и различный размер с одним ограничением: каждая переменная должна иметь одинаковое число строк.

Времена строки расписания являются временными стоимостями, которые помечают строки. Можно индексировать в расписание ко времени строки и переменной. Чтобы индексировать в расписание, используйте сглаженные круглые скобки () возвратить подтаблицу или фигурные скобки {} извлекать содержимое. Можно обратиться к переменным и к вектору времен строки их именами. Для получения дополнительной информации см. Расписания.

Когда вы используете расписания с генерацией кода, придерживаетесь этих ограничений.

Задайте расписания для генерации кода

Для генерации кода используйте timetable функция. Например, предположите, что входные параметры к вашей функции MATLAB® являются тремя массивами, которые имеют одинаковое число строк (AB, и C), datetime или duration вектор, содержащий времена строки (D), и массив ячеек, который имеет имена переменных (vnames). Можно создать расписание, которое содержит эти массивы как переменные расписания.

function TT = foo(A,B,C,D,vnames) %#codegen
    TT = table(A,B,C,'RowTimes',D,'VariableNames',vnames);
end

Чтобы преобразовать массивы и таблицы к расписаниям, используйте array2timetable и table2timetable функции. Например, можно преобразовать вход M- N матрица к расписанию, где каждый столбец матрицы становится переменной в расписании. Присвойте времена строки при помощи duration вектор.

function TT = foo(A,D,vnames) %#codegen
    TT = array2timetable(A,'RowTimes',D,'VariableNames',vnames);
end

Для генерации кода необходимо предоставить имена переменных расписания, когда вы создаете расписание. Имена переменных расписания не должны быть допустимыми идентификаторами MATLAB. Имена должны состоять из символов ASCII, но могут включать любые символы ASCII (такие как запятые, тире и пробелы).

Времена строки могут иметь любого datetime или duration тип данных.

Позволенные операции на расписаниях

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

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

Оператор присваивания: =

TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
TT{:,1} = X;

Генерация кода не поддерживает использование оператора присваивания = к:

  • Удалите переменную или строку.

  • Добавьте переменную или строку.

Операция Indexing

D = seconds(1:10);
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
TT(seconds(3:7),1:3);

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

Поддержки генерации кода:

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

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

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

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

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

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

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

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

Функции тулбокса MATLAB та поддержка расписания

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

Похожие темы