指定数组的上限:
动态内存分配被禁用。
如果禁用了动态内存分配,则必须为所有数组指定上限。
您不希望代码生成器对数组使用动态内存分配。
指定导致数组大小(以字节)小于动态内存分配阈值的上限。
当使用静态分配时,代码生成器使用复杂的分析来计算本地数据的上限。但是,当分析未能检测到上限或计算不够精确的上限时,您必须针对局部变量明确指定上限。
要约束指定变量尺寸的变量的值,请使用断言
与关系操作员的功能。例如:
功能y = dim_need_bound(n)%#codegen断言(n <= 5);l =一个(n,n);m =零(n,n);m = [l;m];y = m;
这个断言
语句约束输入n
最大尺寸为5。l
是可变大小,每个维度的上限为5。m
是可变大小,在第一维中的上限为10,而在第二维中为5。
要为函数中局部变量的所有实例指定上限,请使用编码器
功能。例如:
功能y = example_bounds1(u)%#codegeny = [1 2 3 4 5];coder.varsize('y',[1 10]);如果(u> 0)y = [y y+u];别的y = [y y*u];结尾
第二个论点编码器
为第一个参数指定的变量的每个实例指定上限。在此示例中,参数[1 10]
指示每个实例的y
:
第一个维度固定在尺寸1处。
第二维可以增长到10的上限。