Можно задать входы расписания в командной строке или в MATLAB® Coder™ приложения. Программная спецификация входных типов timetable с помощью предварительного кондиционирования (assert
операторы) не поддерживаются.
Используйте одну из следующих процедур:
Кроме того, если у вас есть тестовый файл, который вызывает функцию точки входа с помощью примера входов, можно определить входные типы при помощи coder.getArgTypes
.
Используйте -args
опция:
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames); codegen myFunction -args {TT}
Чтобы предоставить тип для timetable, codegen
:
Задайте расписание. Для примера:
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
Создайте тип из T
.
t = coder.typeof(TT);
Передайте тип в codegen
при помощи -args
опция.
codegen myFunction -args {t}
Чтобы указать, что вход timetable является постоянным, используйте coder.Constant
с -args
опция:
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames); codegen myFunction -args {coder.Constant(TT)}
Используйте одну из следующих процедур:
Объект типа кодера для timetable описывает объект и его свойства. Использовать 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
свойство. Первая размерность связана верхним углом на 10
.
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