主要内容

数据定义考虑代码生成

生成有效的独立的代码,您必须定义以下类型和类的数据不同于当您运行您的代码在MATLAB®

数据 类型的考虑 更多的信息
数组

最大数量的元素是有限的。

代码生成的数组大小限制
数值类型

分配数值型变量值在操作或使用它们之前返回输出。

定义变量的最佳实践为C / c++代码生成(MATLAB编码器)
复数
  • 设置复杂的变量赋值时,在第一次使用之前。

  • 表达式包含复数或变量表达式的计算结果为一个复杂的结果,即使结果的虚部为零。

代码生成复杂的数据
字符和字符串
  • 字符限制为8位的精度。

  • 为代码生成字符串标量不支持全局变量,索引和花括号,缺失值,利用函数或大小的变化万博1manbetxcoder.varsize

适应数据

初始固定大小后赋值给一个变量,试图增加变量可能会导致一个编译错误。

结构
  • 指定字段结构相同的顺序在每个控制路径。

  • 分配相应的字段结构数组元素相同的大小,类型和复杂性。

细胞数组
  • 分配所有单元阵列元素之前细胞数组传递给一个函数或者从函数返回。

  • 适应可变单元格数组元素都必须有相同的大小,类型和复杂性。

  • 您必须指定变量名称使用的VariableNames“名称-值参数从输入数组在创建表。

  • 有限的数据类型支持当你preallo万博1manbetxcate通过表函数和一个表大小“名称-值参数。

  • 表索引指定变量必须编译时间常数。

  • 你不能改变大小的分配表。

  • 你不能改变VariableNames,RowNames,DimensionNames,或用户数据一个表在您创建它的属性。

限制适用于类也适用于表。

分类数组

分类数组不支持这些输入和操作:万博1manbetx

  • MATLAB对象数组的

  • 稀疏矩阵

  • 重复的类别名称

  • 增长的任务

  • 添加一个类别

  • 删除一个元素

限制适用于类也适用于分类数组。

Datetime数组

datetime数组不支持这些输入和操作:万博1manbetx

  • 文本输入

  • 格式“名称-值参数

  • 时区“名称-值参数和“时区的财产

  • 设置时间组件属性

  • 增长的任务

  • 删除一个元素

限制也适用于适用于类datetime数组。

持续时间数组

时间数组不支持这些输入和操作:万博1manbetx

  • 文本输入

  • 增长的任务

  • 删除一个元素

  • 通过将持续时间值转换为文本字符,cellstr,或字符串功能

限制也适用于类适用于时间数组。

时间表

  • 您必须指定变量名称使用的VariableNames“名称-值参数输入数组在创建时间表。

  • 有限的数据类型支持prealloca万博1manbetxte表时使用的时间表功能和“大小“名称-值参数。

  • 时间表指定变量的指标必须编译时间常数。

  • 你不能改变大小的作业时间表。

  • 你不能改变VariableNames,DimensionNames,或用户数据一个时间表在您创建它的属性。

  • 如果您创建了一个规律的时间表,和您尝试设置不规则行乘以,那么将产生错误。

  • 如果你创建一个不规则的时间表,那么它仍然是不规则的即使你设置它的采样率或时间步。

限制也适用于时间表适用于类。

枚举数据

万博1manbetx只支持基于整数枚举类型。

枚举
MATLAB类

  • 在生成代码之前,这是一个最佳实践测试类属性验证通过运行一个墨西哥人的功能完整的输入值的范围。

  • 如果一个属性并没有一个明确的初始值,代码生成器假定它是未定义的构造函数。代码生成器不赋一个空矩阵作为默认。

  • coder.varsize函数不支持类的属性。万博1manbetx

  • 如果一个属性的初始值是一个对象,那么财产必须是常数。特性常数,声明常量属性在属性的块。

函数处理
  • 分配不同的功能处理相同的变量会导致一个编译时错误。

  • 你不能通过函数处理或从入口点函数或外在功能。

  • 你不能查看函数处理从MATLAB函数块调试器。

函数处理
深度学习数组

dlarrays不支持这些输入万博1manbetx和操作:

  • 数据格式参数必须是一个编译时常量

  • 定义dlarray的入口点函数内部变量。

  • 输入一个dlarray必须固定大小。

  • 代码生成不支持创建一个万博1manbetxdlarray通过使用类型对象coder.typeof指定函数上界大小和变量维度。

前面的表中的信息不是一个详尽的考虑为每个数据类型的列表。更多信息,请参见主题的列。

相关的话题