Редактирование и представление объектов и свойств типа кодера

Передача объекта в coder.typeof (MATLAB Coder) или передача имени класса в виде строкового скаляра coder.newtype (MATLAB Coder) создает объект, который представляет тип объекта для генерации кода.

Объект типа кодера отображает краткое описание свойств объекта, исключая значения внутренних состояний. Неконстантные свойства отображают их тип и размер, в то время как постоянные свойства отображают только их значения.

Чтобы создать объект типа кодера, передайте совместимый объект в coder.typeof (MATLAB Coder). Для примера:

t = categorical({'r','g','b'});
tType = coder.typeof(t)

Представление переменных t хранится в объекте типа кодера tType.

tType = 

   matlab.coder.type.CategoricalType
     1x3 categorical
	Categories : 3x1 homogeneous cell
	   Ordinal : 1x1 logical
	 Protected : 1x1 logical

Свойства объекта

Можно редактировать свойства объектов типа кодера. Свойствам объекта можно назначить скалярные значения. Значения неявно преобразуются в соответствующие значения типа кодера, когда они назначены свойствам объекта типа кодера. Генератор кода неявно преобразует константы, назначенные свойствам объекта типа кодера, в coder.Constant значения. Вы можете сами изменить размер объектов

Изменение размера объектов при помощи coder.resize

Вы можете изменить размер большинства объектов при помощи coder.resize (MATLAB Coder). Можно изменить размер объектов, их свойства и создать массивы в свойствах.

Для примера, для timetable объект кодера, можно изменить размер объекта:

t = timetable((1:5)',(11:15)','SampleRate',1);
tType = coder.typeof(t);
tType = coder.resize(tType, [10 2],[1 0])

Этот код изменяет размер timetable в :10x2 объект.

tType = 

   matlab.coder.type.RegularTimetableType
     :10x2 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

Постоянные свойства tType отобразить их значения. Неконстантные свойства отображают только их тип и размер.

Примечание

Не все типы, представляющие MATLAB® классы совместимы с coder.resize (MATLAB Coder).

Изменение размера объектов путем редактирования свойств объектов

Можно изменить размер объектов путем редактирования самих свойств. Для duration объект типа кодера x, отредактируйте Size свойство для изменения размера при необходимости.

x = coder.typeof(duration((1:3),0,0));
x.Size = [10 10]

Этот код изменяет размер объекта типа кодера.

x = 

   matlab.coder.type.DurationType
     10x10 duration
	Format : 1x8 char

Можно также сделать объект типа кодера переменным размером, установив VarDims флаг:

x.VarDims(2) = true

Второе измерение объекта типа кодера ограничено верхним углом 10.

x = 

   matlab.coder.type.DurationType
     10x:10 duration
	Format : 1x8 char

Устаревшее представление объектов типа кодера

В R2021a вызов coder.typeof больше не возвращает coder.ClassType объект. Если ваш рабочий процесс требует устаревшего представления объектов типа кодера, используйте getCoderType функция от переменной, которая имеет новое представление вашего класса или объекта. Например, чтобы получить устаревшее представление datetime переменная, используйте переменную, которая имеет новое представление tt для вызова getCoderType функция:

t = datetime;
tt = coder.typeof(t);
ttLegacy = tt.getCoderType()

В Coder Type Editor генератор кода включает функцию getCoderType для объектов типа кодера. Используйте эту функцию, чтобы вернуть устаревшее представление типов кодеров. Смотрите, создайте и измените входные типы с помощью редактора типов Coder (MATLAB Coder)

Некоторые типы данных MATLAB обеспечивают настраиваемые представления типов для генерации кода MATLAB. В других случаях тип представлен с помощью coder.ClassType (MATLAB Coder).

См. также

(MATLAB Coder) | (MATLAB Coder) | (MATLAB Coder) | (MATLAB Coder)