Передача объекта coder.typeof (Кодер MATLAB) или передача имени класса в качестве строкового скаляра coder.newtype (Кодер MATLAB) создает объект, который представляет тип объекта для создания кода.
Объект типа кодера отображает краткое описание свойств объекта, исключая значения внутреннего состояния. Непостоянные свойства отображают их тип и размер, в то время как постоянные свойства отображают только их значения.
Чтобы создать объект типа кодера, передайте совместимый объект в coder.typeof (Кодер MATLAB). Например:
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). Можно изменять размеры объектов, их свойства и создавать массивы внутри свойств.
Например, для timetable coder object, можно изменить размер объекта:
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).
Изменить размер объектов можно путем редактирования самих свойств. Для 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 обеспечивают настраиваемые представления типов для генерации кода MATLAB. В других случаях тип представлен с помощью coder.ClassType (Кодер MATLAB).
Генерация кода для массивов переменного размера (кодер MATLAB) | coder.newtype (Кодер MATLAB) | coder.resize (Кодер MATLAB) | coder.typeof (Кодер MATLAB)