Пакет: кодер
Суперклассы: coder.ArrayType
Представляйте набор массивов структур MATLAB
Задает набор массивов структур, которые должен принять сгенерированный код. Используйте только с codegen
-args
опция. Не передавайте как вход сгенерированной MEX-функции.
Примечание
Можно также создать и отредактировать coder.Type
объекты в интерактивном режиме при помощи Редактора типов Кодера. Смотрите Создают и Входные Типы Редактирования при помощи Редактора типов Кодера.
t=coder.typeof(
создает struct_v
)coder.StructType
объект для структуры с теми же полями как скалярная структура struct_v
.
t=coder.typeof(
возвращает модифицированную копию struct_v
, sz
, variable_dims
)coder.typeof(struct_v)
с (верхней границей) размер задан sz
и переменные размерности variable_dims
. Если sz
задает inf
для размерности затем размер размерности принят, чтобы быть неограниченным, и размерность принята, чтобы быть переменная измеренный. Когда sz
[], (верхняя граница) размеры struct_v
останьтесь неизменными. Если variable_dims
входной параметр не задан, размерности типа приняты, чтобы быть зафиксированными за исключением тех, которые неограниченны. Когда variable_dims
скаляр, он применяется к ограниченным размерностям, которые не являются 1
или 0
(которые приняты, чтобы быть зафиксированными).
создает t
=coder.newtype('struct', struct_v
, sz
, variable_dims
)coder.StructType
объект для массива структур с теми же полями как скалярная структура struct_v
и (верхняя граница) размер sz
и переменные размерности variable_dims
. Если sz
задает inf
для размерности затем размер размерности принят, чтобы быть неограниченным, и размерность принята, чтобы быть переменная измеренный. Когда variable_dims
не задан, размерности типа приняты, чтобы быть зафиксированными за исключением тех, которые неограниченны. Когда variable_dims
скаляр, он применяется к размерностям типа, кроме того, если размерностью является 1
или 0
, который принят, чтобы быть зафиксированным.
|
Скалярная структура раньше задавала поля в новом типе структуры. |
|
Вектор размера, задающий каждую размерность текстового объекта. Значение по умолчанию: [1 1] для |
|
Логический вектор, который задает, является ли каждая размерность переменным размером (TRUE) или (FALSE) фиксированный размер. Значение по умолчанию: ложь (размер (sz)) | sz == Inf для |
|
Выравнивание памяти во время выполнения структур этого типа в байтах. Если у вас есть Embedded Coder® лицензия и пользуется Заменяющими Библиотеками Кода (CRLs), CRLs обеспечивают способность выровняться, объекты данных передали в заменяющую функцию заданному контуру. Эта возможность позволяет вам использовать в своих интересах целевые реализации функции, которые требуют, чтобы данные были выровнены. По умолчанию структура не выравнивается на определенном контуре, таким образом, она не будет соответствующей функциями CRL, которые требуют выравнивания.
|
|
Класс значений в этом наборе. |
|
Задан ли тип структуры внешне. |
|
Структура, дающая |
|
Если тип структуры внешне задан, имя заголовочного файла, который содержит внешнее определение структуры, например, По умолчанию сгенерированный код содержит Должен быть непустой символьный вектор или строковый скаляр. |
|
Размер верхней границы массивов в этом наборе. |
|
Вектор раньше задавал, фиксируется ли каждая размерность массива или переменный размер. Если векторным элементом является |
Значение. Чтобы узнать, как классы значений влияют на операции копирования, см. раздел "Копирование объектов".
Создайте тип для структуры с полем переменного размера.
x.a = coder.typeof(0,[3 5],1); x.b = magic(3); coder.typeof(x) % Returns % coder.StructType % 1x1 struct % a: :3x:5 double % b: 3x3 double % ':' indicates variable-size dimensions
Создайте coder.StructType
возразите затем вызывают codegen
сгенерировать библиотеку C для функционального fcn.m
это имеет входной параметр того этого типа
Создайте новый тип структуры.
ta = coder.newtype('int8',[1 1]); tb = coder.newtype('double',[1 2],[1 1]); z = coder.newtype('struct',struct('a',ta,'b',tb)) % Returns % coder.StructType % 1x1 struct % a: 1x1 int8 % b: :1x:2 double
Вызвать codegen
сгенерировать библиотеку C для функции MATLAB fcn.m
это имеет входной параметр того этого типа.
% Use the -config:lib option to generate a C library codegen -config:lib fcn -args {z}
Создайте coder.StructType
возразите, что использует внешне заданный тип структуры.
Создайте тип, который использует внешне заданный тип структуры.
S.a = coder.typeof(double(0)); S.b = coder.typeof(single(0)); T = coder.typeof(S); T = coder.cstructname(T,'mytype','extern','HeaderFile','myheader.h');
T = coder.StructType 1x1 extern mytype (myheader.h) struct a: 1x1 double b: 1x1 single
Просмотрите типы полей структуры.
T.Fields
ans = a: [1x1 coder.PrimitiveType] b: [1x1 coder.PrimitiveType]
coder.Type
| coder.PrimitiveType
| coder.EnumType
| coder.FiType
| coder.ClassType
| coder.Constant
| coder.ArrayType
| coder.newtype
| coder.typeof
| coder.resize
| codegen
| coder
| coder.cstructname