Пакет: кодер
Суперклассы: 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