文档

编码器。StructType类

包:编码器
超类:编码器。ArrayType

表示的集合MATLAB结构数组

描述

指定生成的代码应接受的结构数组集。只能与codegenarg游戏选择。不要将输入传递给生成的MEX函数。

建设

t = coder.typeof (struct_v创建一个编码器。StructType对象获取与标量结构具有相同字段的结构struct_v

t = coder.typeof (struct_v深圳variable_dims的修改副本coder.typeof (struct_v)具有指定的(上限)大小深圳可变维度variable_dims.如果深圳指定对于维度,则假设维度的大小是无界的,并且维度的大小是可变的。当深圳是[],(上限)的大小struct_v保持不变。如果variable_dims如果没有指定输入参数,则假定类型的尺寸是固定的,除非是无界的。当variable_dims是标量,它被应用到有界维度上10(假设是固定的)。

t= coder.newtype(“结构”,struct_v深圳variable_dims创建一个编码器。StructType对象用于具有与标量结构相同字段的结构数组struct_v和(上限)大小深圳可变维度variable_dims.如果深圳指定对于维度,则假设维度的大小是无界的,并且维度的大小是可变的。当variable_dims如果未指定,则假定类型的维度是固定的,除非是无界的。当variable_dims是标量,则它应用于类型的维度,除非维度为10,假设该值是固定的。

输入参数

struct_v

用于指定新结构类型中的字段的标量结构。

深圳

Size向量,指定类型对象的每个维度。

默认值:[11] forcoder.newtype

variable_dims

逻辑向量,指定每个维度是可变大小(true)还是固定大小(false)。

默认值:(size(sz)) | sz==Infcoder.newtype

属性

对齐

以字节为单位的这种类型的结构的运行时内存对齐。如果你有嵌入式编码器®代码替换库(CRLs)提供了将传递到替换函数的数据对象对齐到指定边界的能力。此功能允许您利用特定于目标的函数实现,这些函数需要对数据进行对齐。默认情况下,该结构没有在特定边界上对齐,因此它不会被需要对齐的CRL函数匹配。

对齐肯定是其中之一-1或者幂2那不过是128

类名称

这个集合中值的类别。

走读生

是否外部定义结构类型。

字段

一个结构给出编码器。类型结构中每个字段的。

HeaderFile

如果结构类型是外部定义的,则包含结构的外部定义的头文件的名称,例如,“mystruct.h”属性指定文件的路径codegen-我选项或其他包含目录参数中的MATLAB®编码器™项目设置对话框自定义代码选项卡。

默认情况下,生成的代码包含# include标准头文件之后的自定义头文件语句。如果标准头文件引用自定义结构类型,则编译失败。通过指定HeaderFile选项,MATLAB编码器在需要头文件的位置准确地包含该头文件。

必须为非空字符向量或字符串标量。

SizeVector

此集合中数组的上限大小。

VariableDims

用于指定数组的每个维度是固定大小还是可变大小的向量。如果一个向量元素是真正的,对应尺寸为变尺寸。

复制语义

价值。要了解值类如何影响复制操作,请参见复制对象(MATLAB)。

例子

为具有可变大小字段的结构创建类型。

X.a =编码器。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

创建一个编码器。StructType对象然后调用codegen为函数生成C库fcn.m它有一个这种类型的输入参数

  1. 创建一个新的结构类型。

    Ta =编码器。newtype(“int8”,[1]);TB =编码器。Newtype ('double',[1 2],[1 1]);z = code .newtype('struct',struct('a',ta,'b',tb)) %返回%编码器。StructType % 1x1 struct % a: 1x1 int8 % b::1x:2 double
  2. 调用codegen为MATLAB函数生成C库fcn.m它有一个这种类型的输入参数。

    使用-config:lib选项生成C库代码原-config:lib fcn -args {z}

创建一个编码器。StructType对象,它使用外部定义的结构类型。

  1. 创建使用外部定义的结构类型的类型。

    S.a = code .typeof(double(0));S.b = code .typeof(single(0));T = code .typeof(S);T = code .cstructname(T,“mytype”“外来的”“HeaderFile”“myheader.h”);
    T =编码器。StructType1x1 extern mytype (myheader.h) struct a: 1x1 double b: 1x1 single
  2. 查看结构字段的类型。

    T.Fields
    Ans = a: [1x1编码器。PrimitiveType]b: [1x1 coder.PrimitiveType]

在R2011a中引入

这个话题有用吗?