Передача объекта к 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()
В Редакторе типов Кодера генератор кода включает функциональный getCoderType
для текстовых объектов кодера. Используйте эту функцию, чтобы возвратить устаревшее представление типов кодера. Смотрите, Создайте и Входные Типы Редактирования при помощи Редактора типов Кодера (MATLAB Coder)
Определенные типы данных MATLAB обеспечивают настроенные представления типа для генерации кода MATLAB. В других случаях тип представлен с помощью coder.ClassType
(MATLAB Coder).
Генерация кода для массивов Переменного Размера (MATLAB Coder) | coder.newtype
(MATLAB Coder) | coder.resize
(MATLAB Coder) | coder.typeof
(MATLAB Coder)