Можно задать входные параметры расписания в командной строке или в приложении MATLAB® Coder™. Программируемая спецификация расписания ввела типы при помощи предварительного создания условий (assert
операторы), не поддерживается.
Используйте одну из этих процедур:
В качестве альтернативы, если у вас есть тестовый файл, который вызывает вашу функцию точки входа с входными параметрами в качестве примера, можно определить входные типы при помощи coder.getArgTypes
.
Используйте -args
опция:
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames); codegen myFunction -args {TT}
Обеспечить тип для расписания к codegen
:
Задайте расписание. Например:
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
Создайте тип из T
.
t = coder.typeof(TT);
Передайте тип codegen
при помощи -args
опция.
codegen myFunction -args {t}
Чтобы указать, что вход расписания является постоянным, используйте coder.Constant
с -args
опция:
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames); codegen myFunction -args {coder.Constant(TT)}
Используйте одну из этих процедур:
Текстовый объект кодера для расписания описывает объект и его свойства. Использование coder.typeof
или передайте timetable
как строковый скаляр к coder.newtype
.
Текстовый объект кодера отображает сжатое описание свойств объектов в то время как, исключая значения внутреннего состояния. Непостоянные свойства отображают свой тип и размер, в то время как постоянные свойства отображают только свои значения. Например:
t = timetable((1:5)',(11:15)','SampleRate',1);
tType = coder.typeof(t)
Представление переменной t
хранится в текстовом объекте кодера tType
.
tType = matlab.coder.type.RegularTimetableType 5x2 timetable Data : 1x2 homogeneous cell Description : 1x0 char UserData : 0x0 double DimensionNames : {'Time'} {'Variables'} VariableNames : {'Var1'} {'Var2'} VariableDescriptions : 1x2 homogeneous cell VariableUnits : 1x2 homogeneous cell VariableContinuity : 1x2 matlab.internal.coder.tabular.Continuity StartTime : 1x1 matlab.coder.type.DurationType SampleRate : 1x1 double TimeStep : 1x1 matlab.coder.type.DurationType
Задайте регулярный timetable
путем определения SampleRate
или TimeStep
. Можно также задать неправильный timetable
путем определения RowTimes
. Например:
t1 = timetable((1:3),'RowTimes',seconds(1:3));
t1Type = coder.typeof(t)
Представление неправильной таблицы t1
хранится в текстовом объекте кодера t1Type
.
t1Type = matlab.coder.type.TimetableType 3x1 timetable Data : 1x1 homogeneous cell Description : 1x0 char UserData : 0x0 double DimensionNames : {'Time'} {'Variables'} VariableNames : {'Var1'} VariableDescriptions : 1x1 homogeneous cell VariableUnits : 1x1 homogeneous cell VariableContinuity : 1x1 matlab.internal.coder.tabular.Continuity RowTimes : 3x1 matlab.coder.type.DurationType
Если ваш рабочий процесс требует устаревшего представления текстовых объектов кодера, используйте getCoderType
функция на переменной, которая имеет новое представление вашего класса или объекта. Смотрите Устаревшее Представление Текстовых объектов Кодера.
coder.resize
Можно изменить размер большинства объектов при помощи coder.resize
. Можно изменить размер объектов, его свойств и создать массивы в свойствах.
Для timetable
объект кодера, можно изменить размер свойств объектов:
t = timetable((1:5)',(11:15)','SampleRate',1);
tType = coder.typeof(t);
tType.UserData = coder.resize(tType.UserData,[10 1],[1 0])
Этот код изменяет размер UserData
свойство быть :10x1
double
свойство. Первая размерность является верхней границей at10
.
tType = matlab.coder.type.RegularTimetableType 5x2 timetable Data : 1x2 homogeneous cell Description : 1x0 char UserData : :10x1 double DimensionNames : {'Time'} {'Variables'} VariableNames : {'Var1'} {'Var2'} VariableDescriptions : 1x2 homogeneous cell VariableUnits : 1x2 homogeneous cell VariableContinuity : 1x2 matlab.internal.coder.tabular.Continuity StartTime : 1x1 matlab.coder.type.DurationType SampleRate : 1x1 double TimeStep : 1x1 matlab.coder.type.DurationType
Можно также изменить размер объекта при помощи coder.resize
. Смотрите редактирование и представляйте текстовые объекты кодера и свойства.
coder.Constant
| coder.typeof
| timetable