主要内容

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

当编写MATLAB®如果你想将代码转换成高效的、独立的C/ c++代码,你必须考虑以下几点:

  • 数据类型

    C和c++使用静态类型。要在使用变量之前确定变量的类型,MATLAB编码器™需要对每个变量进行完整的赋值。

  • 数组大小

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

  • 内存

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

    通过动态内存分配,您可能会使用更少的内存,但需要花费更多的时间来管理内存。使用静态内存,您可以获得更好的速度,但会占用更高的内存。大多数MATLAB代码利用了MATLAB中的动态大小调整特性,因此动态内存分配通常使您能够从现有的MATLAB代码生成代码,而无需对其进行太多修改。动态内存分配还允许在找不到上界的情况下编译一些程序。

    静态分配减少了生成代码的内存占用,因此适用于可用内存数量有限的应用程序,例如嵌入式应用程序。

  • 速度

    因为嵌入式应用程序必须实时运行,所以代码必须足够快,以满足所需的时钟速率。

    要提高生成代码的速度:

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

    • 考虑禁用运行时检查。

      默认情况下,为了安全起见,为您的MATLAB代码生成的代码包含内存完整性检查和响应性检查。通常,这些检查会产生更多生成的代码和更慢的模拟。禁用运行时检查通常会产生精简的生成代码和更快的模拟。只有在验证了数组边界和维度检查是不必要的情况下,才禁用这些检查。

另请参阅

Baidu
map