Пакет: coder
Суперклассы: 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). По умолчанию: false (sz)) | sz = = Inf для |
|
Время выполнения памяти выравнивание структур этого типа в байтах. Если у вас есть Embedded Coder® лицензия и использование библиотек замещения кода (CRL), CRL обеспечивают возможность выравнивания объектов данных, переданных в функцию замещения, по заданному контуру. Эта возможность позволяет вам использовать преимущества специфичных для целевого объекта реализаций функции, которые требуют выравнивания данных. По умолчанию структура не выравнивается по определенному контуру, поэтому она не будет совпадать с функциями 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]
codegen
| coder
| coder.ArrayType
| coder.ClassType
| coder.Constant
| coder.cstructname
| coder.EnumType
| coder.FiType
| coder.newtype
| coder.PrimitiveType
| coder.resize
| coder.Type
| coder.typeof