Задайте входные параметры расписания

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

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

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

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

Обеспечьте вход расписания в качестве примера

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

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

Обеспечьте тип расписания

Обеспечить тип для расписания к codegen:

  1. Задайте расписание. Например:

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

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

    t = coder.typeof(TT);
    

  3. Передайте тип codegen при помощи -args опция.

    codegen myFunction -args {t}
    

Обеспечьте постоянный вход расписания

Чтобы указать, что вход расписания является постоянным, используйте coder.Constant с -args опция:

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

Задайте входные параметры расписания в приложении MATLAB Coder

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

Представление расписаний

Текстовый объект кодера для расписания описывает объект и его свойства. Использование 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. Смотрите редактирование и представляйте текстовые объекты кодера и свойства.

Смотрите также

| |

Похожие темы