Когда вы создаете расписания в коде MATLAB®, который вы предназначаете для генерации кода, необходимо создать их при помощи array2timetable
, table2timetable
, или timetable
функции. Для получения дополнительной информации см. Расписания.
Для расписаний у генерации кода есть эти ограничения:
Именем первой размерности расписания является 'Time'
и не может быть изменен. Имя первой размерности является также именем вектора времен строки, которые можно отослать к использованию записи через точку.
Необходимо задать имена переменных при помощи 'VariableNames'
аргумент пары "имя-значение" при создании расписаний из входных массивов при помощи timetable
или array2timetable
функции.
Вы не должны задавать 'VariableNames'
аргумент, когда вы предварительно выделяете расписание при помощи timetable
функционируйте и 'Size'
аргумент пары "имя-значение".
Имена переменных расписания не должны быть допустимыми идентификаторами MATLAB. Имена должны состоять из символов ASCII, но могут включать любые символы ASCII (такие как запятые, тире и пробелы).
После того, как вы создадите расписание, вы не можете изменить VariableNames
DimensionNames
, или UserData
свойства.
Когда вы создаете расписание, можно задать 'VariableNames'
и 'RowTimes'
входные параметры, чтобы установить свойства, имеющие те имена.
Создать обычное расписание при определении 'SampleRate'
Время начала
, или 'TimeStep'
аргументы пары "имя-значение", сначала используйте 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, потому что эта операция является горизонтальной конкатенацией.
Функции принадлежности набора intersect
, setdiff
, setxor
, и union
поддержите неотсортированные расписания во всех случаях. Вы не должны задавать 'stable'
опция.
При использовании convertvars
функция:
Указатели на функцию не поддерживаются.
Вторые и третьи входные параметры (vars
и dataType
) должно быть постоянным.
Вы не можете задать dataType
как 'char'
.
При использовании movevars
функция, входной параметр vars
не может содержать дублирующиеся имена переменных.
При использовании isregular
функция:
Использование coder.Constant
сделать входной параметр timeComponent
постоянный.
Входной параметр timeComponent
не может быть календарный модуль. Если вы задаете его, то его значением должен быть 'time'
.
При использовании retime
или synchronize
функции:
Времена строки выходного расписания всегда считаются неправильными, даже когда синхронизируется с временами строки, которые имеют шаг постоянного времени.
'makima'
метод интерполяции не поддерживается.
Если VariableContinuity
свойства входных расписаний не являются постоянными, затем эта функция игнорирует их.
'weekly'
, 'monthly'
, и 'quarterly'
временные шаги не поддерживаются.
Если входные расписания имеют времена строки, которые являются datetime
значения, затем 'daily'
и 'yearly'
временные шаги также не поддерживаются.
При использовании timerange
функция, входной параметр unitOfTime
не поддерживается.
Ограничения, которые применяются к классам также, применяются к расписаниям. Для получения дополнительной информации см. Определение Классов MATLAB для Генерации кода (MATLAB Coder).
array2timetable
| table2timetable
| timetable