Передача объекта к 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).
coder.resize (MATLAB Coder) | coder.newtype (MATLAB Coder) | coder.typeof (MATLAB Coder) | генерация кода для массивов Переменного Размера (MATLAB Coder)