为适应可变数组生成代码
对于代码生成,数组维度固定大小或适应。如果代码生成器可以确定尺寸的大小和尺寸的大小不改变,那么尺寸是固定大小。当所有的尺寸是固定大小的数组,数组是一个固定大小数组中。在接下来的例子中,Z
是一个固定大小的数组。
函数Z = myfcn () Z = 0 (1,4);结束
第一个维度的大小是1,第二个维度是4的大小。
如果代码生成器不能确定一个维度的大小或代码生成器确定大小变化,则适应维度。当至少有一个维度的适应,是一个数组适应数组中。
适应维度有界的或无限。有界维度有固定的大小上。一个无界的尺寸没有一个固定的大小上。
在接下来的例子中,第二个维度Z
是有界的,适应。它有一个上界的16。
函数s = myfcn (n)如果(n > 0) Z = 0 (1,4);其他的Z = 0 (16);结束s =长度(Z);
在接下来的例子中,如果该值n
在编译时是未知的,那么第二个尺寸Z
是无限的。
函数s = myfcn (n) Z =兰德(1,n);s =总和(Z);结束
您可以定义适应可变数组:
使用构造函数,例如
0
一个非常数的维度分配多个常数大小相同的变量在使用前
声明一个变量的所有实例被使用适应
coder.varsize
有关更多信息,请参见定义为代码生成适应可变数据。
您可以控制是否允许代码生成适应可变数组。看到启用和禁用支持适应可变数组金宝app。
为适应可变数组内存分配
固定大小的数组和适应可变数组的大小是小于一个阈值,代码生成器静态地分配内存的堆栈。无界,适应可变数组和适应可变数组的大小是大于或等于阈值,代码生成器堆上动态地分配内存。
您可以控制是否允许动态内存分配或者当它用于代码生成。看到控制内存分配适应可变数组。
代码生成器是动态分配数据结构类型emxArray
。代码生成器生成创建和效用函数与emxArrays交互。如果你使用嵌入式编码器®,您可以定制生成的标识符emxArray
类型和效用函数。看到标识符的格式控制(嵌入式编码)。
启用和禁用支持适应可变数组金宝app
默认情况下,启用支持适应金宝app可变数组。修改这个支持:金宝app
在一个代码配置对象,设置
EnableVariableSizing
参数真正的
或假
。在MATLAB®编码器™应用程序,内存设置,选择或清除使适应复选框。
适应可变数组代码生成报告
你可以告诉是否固定大小的数组或适应通过查看大小列的变量标签在一个代码生成报告。
一个冒号(:)表明一个维度是适应的。一个问号(?)表明,大小是无界的。例如,一个大小为1×-:?表明,第一个维度是固定大小的大小1和大小的第二个维度是无界的,适应。斜体显示代码生成器产生了适应可变数组,但是在执行期间不改变数组的大小。