主要内容

指定可变大小数组的上界

在以下情况下指定数组的上界:

  • 禁用动态内存分配。

    如果禁用动态内存分配,则必须为所有数组指定上界。

  • 您不希望代码生成器为数组使用动态内存分配。

    指定导致数组大小(以字节为单位)小于动态内存分配阈值的上界。

为可变大小的输入指定上界

如果您使用codegen方法指定可变大小输入的上界coder.typeof的构造arg游戏选择。例如:

代码源foo -args {code .typeof(double(0),[3 100],1)}

这个命令指定输入要起作用喷火是一个具有两个可变维的实双精度矩阵。第一个维度的上限是3。第二个维度的上限是100。

方法生成代码MATLAB®编码器™应用程序,请参阅使用App指定入口点函数输入的属性而且当它们满足尺寸阈值时,使尺寸可变

指定局部变量的上界

在使用静态分配时,代码生成器使用复杂的分析来计算本地数据的上界。但是,当分析未能检测到上界或计算出对您的应用程序不够精确的上界时,必须为局部变量显式指定上界。

约束指定可变大小数组的尺寸的变量的值

要约束指定可变大小数组的维数的变量的值,请使用断言使用关系运算符函数。例如:

函数Y = dim_need_bound(n)% # codegen断言(n <= 5);L = 1 (n, n);M = 0 (n,n);M = [l;M];y = M;

断言语句约束输入n最大大小为5。l是可变大小的,每个维度的上界为5。是可变大小的,第一个维度的上限为10,第二个维度的上限为5。

指定局部变量的所有实例的上界

方法可指定函数中局部变量的所有实例的上界coder.varsize函数。例如:

函数Y = example_bounds1(u)% # codegenY = [1 2 3 4 5];coder.varsize (“Y”10 [1]);如果(u > 0) Y = [Y Y+u];其他的Y = [Y Y*u];结束

第二个论点是coder.varsize指定第一个参数中指定的变量的每个实例的上界。在这个例子中,参数10 [1]的每个实例Y

  • 第一个维度的大小固定为1。

  • 第二个维度可以增长到10的上限。

另请参阅

|

相关的话题

Baidu
map