Задайте входные параметры Timetable

Можно задать входы расписания в командной строке или в MATLAB® Coder™ приложения. Программная спецификация входных типов timetable с помощью предварительного кондиционирования (assert операторы) не поддерживаются.

Задайте входные параметры Timetable в командной строке

Используйте одну из следующих процедур:

Кроме того, если у вас есть тестовый файл, который вызывает функцию точки входа с помощью примера входов, можно определить входные типы при помощи coder.getArgTypes.

Предоставьте пример входа Timetable

Используйте -args опция:

TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
codegen myFunction -args {TT}

Предоставления типа Timetable

Чтобы предоставить тип для timetable, codegen:

  1. Задайте расписание. Для примера:

    TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);

  2. Создайте тип из T.

    t = coder.typeof(TT);
    

  3. Передайте тип в 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 в приложении MATLAB Coder

Используйте одну из следующих процедур:

Представление Timetables

Объект типа кодера для 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. См. раздел «Редактирование и представление объектов и свойств типа кодера».

См. также

| |

Похожие темы