主要内容

为可变大小数组指定上限

指定数组的上限:

  • 动态内存分配被禁用。

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

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

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

指定上限MATLAB功能块输入和输出

声明变量大小输入和输出

为本地变量指定上限

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

约束指定变量尺寸的变量的值

要约束指定变量尺寸的变量的值,请使用断言与关系操作员的功能。例如:

功能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的上限。

也可以看看

相关话题