Main Content

针对代码生成的 MATLAB 代码设计注意事项

在编写您要转换为高效的独立 C/C++ 代码的 MATLAB® 代码时,必须考虑以下事项:

  • 数据类型

    C 和 C++ 使用静态类型。为了在使用之前确定您的变量类型,MATLAB Coder™ 需要每个变量的完整赋值。

  • 数组大小

    代码生成支持可变大小数组和矩阵。您可以在 MATLAB 函数中定义输入、输出和局部变量,以表示在运行时大小各不相同的数据。

  • 内存

    您可以选择生成的代码是使用静态还是动态内存分配。

    使用动态内存分配,您可以减少内存使用量,但代价是需要花时间管理内存。使用静态内存分配,您可以获得更快的速度,但内存使用量较高。大多数 MATLAB 代码会利用 MATLAB 中的动态调整大小功能,因此,借助动态内存分配,您通常能够从现有 MATLAB 代码生成代码,而无需进行太多修改。动态内存分配甚至还允许某些程序在找不到上界时进行编译。

    静态分配可减少所生成代码的内存使用量,因此适用于可用内存量有限的应用程序(如嵌入式应用程序)。

  • 速度

    由于嵌入式应用程序必须实时运行,因此代码必须足够快才能满足所需的时钟频率。

    要提高生成的代码的执行速度:

    • 选择合适的 C/C++ 编译器。不要使用 MathWorks® 随 MATLAB 为 Windows® 64 位平台提供的默认编译器。

    • 考虑禁用运行时检查。

      默认情况下,出于安全考虑,为您的 MATLAB 代码生成的代码包含内存完整性检查和响应性检查。通常情况下,这些检查会导致生成更多代码和减慢仿真速度。禁用运行时检查通常可以简化生成的代码并提高仿真速度。仅当您已确认数组边界和维度检查不必要时,才可以禁用这些检查。

另请参阅