Когда вы создаете расписания в коде MATLAB®, который вы предназначаете для генерации кода, необходимо создать их при помощи array2timetable
table2timetable
, или timetable
функции. Для получения дополнительной информации см. Расписания (MATLAB).
Для расписаний у генерации кода есть эти ограничения:
Времена строки должны иметь duration
тип данных. Времена строки не могут иметь datetime
тип данных.
Именем первой размерности расписания всегда является 'Time'
. Имя первой размерности является также именем вектора времен строки, которые можно отослать к использованию записи через точку.
Необходимо задать имена переменных при помощи 'VariableNames'
аргумент пары "имя-значение" при создании расписаний из входных массивов при помощи timetable
или array2timetable
функции.
Вы не должны задавать 'VariableNames'
аргумент, когда вы предварительно выделяете расписание при помощи timetable
функционируйте и 'Size'
аргумент пары "имя-значение".
Имена переменных расписания должны быть допустимыми идентификаторами MATLAB. Имена переменных должны начаться с буквы и могут включать только буквы, цифры и символы нижнего подчеркивания.
После того, как вы создадите расписание, вы не можете изменить VariableNames
DimensionNames
, или UserData
свойства.
Когда вы создаете расписание, можно задать 'VariableNames'
и 'RowTimes'
входные параметры, чтобы установить свойства, имеющие те имена.
Создать обычное расписание при определении 'SampleRate'
Время начала
, или 'TimeStep'
аргументы пары "имя-значение", сначала используйте coder.Constant
функция, чтобы сделать значения постоянными. Если вы не делаете их постоянными, то времена строки считаются неправильными.
Кроме того, если вы создаете неправильное расписание, затем это остается неправильным, даже если вы устанавливаете его частоту дискретизации или временной шаг.
Если вы создаете обычное расписание, и вы пытаетесь установить неправильные времена строки, то ошибка производится.
Чтобы индексировать в расписание при помощи имен переменных, сначала используйте coder.Constant
функция, чтобы сделать расписание постоянным.
По умолчанию расписания, которые вы передаете в сгенерированный код как входные параметры, не являются постоянными. Даже их переменные и времена строки не являются постоянными. Если расписание не является постоянным, то операция индексации, которая использует переменные, производит ошибку. Можно индексировать в переменные расписания при помощи числовых или логических индексов, даже если расписание не является постоянным.
Чтобы передать индексы расписания в сгенерированный код как входные параметры, сначала используйте coder.Constant
функция, чтобы превратить индексы во второе измерение постоянного расписания. Если индексы во второе измерение не являются постоянными, то индексация в переменные производит ошибку.
Если вы индексируете в расписание при помощи duration
значения или объект производятся timerange
или withtol
функции, затем выход является всегда непостоянным с переменным количеством строк.
Если вы индексируете в обычное расписание при помощи duration
значения или объект производятся timerange
или withtol
функции, затем выход всегда считается неправильным.
Вы не можете добавить пользовательские метаданные в расписание. addprop
и rmprop
функции не поддерживаются.
Вы не можете изменить размер расписания присвоениями. Например, этот вызов, чтобы добавить новую строку производит ошибку.
function TT = foo() %#codegen TT = timetable((1:3)',(1:3)','RowTimes',seconds([0,5,10]),... 'VariableNames',{'Var1','Var2'}); TT{4,:} = [5,5]; end
Удаление строки или переменной присвоением также производит ошибку.
Вы не можете добавить новую строку при помощи нового времени строки в присвоении. Например, этот вызов, чтобы добавить новую строку при помощи нового времени строки вместо числового индекса не производит ошибку, но также и не добавляет новую строку.
function TT = foo() %#codegen TT = timetable((1:3)',(1:3)','RowTimes',seconds([0,5,10]),... 'VariableNames',{'Var1','Var2'}); TT{seconds(15),:} = [5,5]; end
Когда вы предварительно выделяете расписание, можно задать только следующие типы данных при помощи 'VariableTypes'
аргумент пары "имя-значение".
Имя типа данных | Начальное значение в каждом элементе |
---|---|
| Дважды - или |
| Дважды - или |
| Подписанный 8-, 16-, 32-, или 64-битный целочисленный |
| 8-без знака, 16-, 32-, или 64-битный целочисленный |
| 0 |
|
|
| 0 |
|
|
Если вы задаете 'char'
как тип данных, затем timetable
предварительно выделяет соответствующую переменную как массив ячеек из символьных векторов, не как символьный массив. Лучшая практика состоит в том, чтобы не создавать переменные расписания, которые являются символьными массивами.
Когда вы вертикально конкатенируете расписания, у них должны быть те же имена переменных в том же порядке. В MATLAB имена переменных должны быть тем же самым, но могут быть в различных порядках в расписаниях.
Когда вы горизонтально конкатенируете расписания, у них должны быть те же времена строки в том же порядке. В MATLAB времена строки должны быть тем же самым, но могут быть в различных порядках в расписаниях.
Если два расписания имеют переменные, которые являются массивами ячеек N-D, то вы не можете вертикально конкатенировать расписания.
Вы не можете использовать фигурные скобки, чтобы извлечь данные из нескольких переменных расписания, которые являются массивами ячеек N-D, потому что эта операция является горизонтальной конкатенацией.
Ограничения, которые применяются к классам также, применяются к расписаниям. Для получения дополнительной информации см. Определение Классов MATLAB для Генерации кода (MATLAB Coder).
array2timetable
| table2timetable
| timetable