Отредактируйте и представляйте текстовые объекты кодера и свойства

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

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

Чтобы создать текстовый объект кодера, передайте совместимый объект coder.typeof. Например:

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. Можно изменить размер объектов, его свойств и создать массивы в свойствах.

Например, для 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.

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

Можно изменить размер объектов путем редактирования самих свойств. Для 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()

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

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

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

| | |