MATLAB Coder

从 MATLAB 代码生成 C 和 C++ 代码

 

MATLAB Coder™ 可从 MATLAB® 代码生成 C 和 C++ 代码,适用于从桌面系统到嵌入式硬件等多种硬件平台。支持大 MATLAB 代码和各种工具箱。您可以将生成的代码作为源代码、静态库或动态库集成到您的项目。生成的代码可读且可移植。您可以合并现有的 C 代码和库,以保证算法关键部分的高效能或高可信代码的重用。您还可以将生成的代码打包为 MEX 函数,用于在 MATLAB 环境中执行验证或加速。

Embedded Coder® 增强了 MATLAB Coder 在生产方面的用途,支持代码自定义、目标特定的优化、代码可追溯性以及软件在环 (SIL) 和处理器在环 (PIL) 验证。

要部署完整应用程序(包括用户界面),请使用 MATLAB Compiler SDK™。

开始:

随时随地运行

生成可读可移植的 ANSI C 源代码。部署免特许费代码

部署免特许费算法

使用任何 C 语言编译器在任何硬件上编译和运行生成的代码,包括从桌面系统到移动设备到嵌入式硬件。生成的代码免特许费——可免费部署在客户的商业应用中。

为矩阵乘法生成代码。

dorsaVi 医疗/体育运动分析算法。

支持的工具箱和函数

MATLAB Coder 利用范围广泛的 MATLAB 语言特性来生成代码,设计工程师使用这些语言特性来开发作为大型系统组件的算法。这包括来自 MATLAB 以及配套工具箱 的超过 1900 个运算符和函数。

MATLAB 为代码生成提供的语言和工具箱支持。

硬件原型实现

通过将算法自动转换为 C 语言快速访问硬件。

桌面和云平台原型实现

使用 MATLAB Coder 应用或等效命令行函数为信号处理、计算机视觉、深度学习、控制系统或其他应用快速生成代码,然后针对硬件编译代码。

在桌面和云平台上快速建立算法原型。

嵌入式和移动平台原型实现

通过将生成的代码与应用手动集成实现以任何设备为目标。使用针对 Raspberry Pi 的 MATLAB 支持包为 Raspberry Pi™ 自动化该过程。

在嵌入式和移动平台上快速建立算法原型。

从原型设计到生产

配合使用 MATLAB Coder 和 Embedded Coder® 生成有效利用特定处理器的内部函数的代码,这些代码的执行速度快于标准 ANSI/ISO C/C++ 代码。

分析所生成的独立代码的执行时间。

与软件集成

在软件环境中将 MATLAB 算法重用为 C 代码。

使用易于集成的简单接口生成代码

生成的代码自然而然地使用 C 类型,可简化与外部代码的集成。可以将生成的代码作为源代码或库进行集成。信任的 C 库或组件可以引入 MATLAB 以执行逼真度更高的测试,也可从生成的代码自动调用。

通过将 MATLAB Coder 和 Embedded Coder 结合使用生成的交互式可溯源性报告。

优化所生成代码的性能

应用优化以在执行速度、内存使用情况、可读性和可移植性之间进行权衡。使用分析工具确定瓶颈。要进一步提升性能,请生成多核 OpenMP 代码并在可用时调用优化库(如 LAPACK、BLAS 和 FFTW)。

通过调用 OpenMP 生成的代码的示例。

在集成前对生成的代码复用 MATLAB 测试

重用现有 MATLAB 测试以在交互式 MATLAB 环境中验证所生成代码的行为。使用 MATLAB 单元测试框架快速开发一组功能丰富的回归测试,这些测试可以用于验证生成的 C 代码。

在与应用程序集成之前验证所生成代码的行为。

加速算法

生成 C 代码并进行编译以在 MATLAB 内使用。

在 CPU 上加速算法

可以从 MATLAB 代码以 MEX 函数的形式调用生成的代码以加速执行,不过性能将因 MATLAB 代码本身的特性而异。您可以分析所生成的 MEX 函数,以确定瓶颈并重点优化。

分析 MEX 函数以确定性能瓶颈。

使用 GPU 加速算法

使用 Parallel Computing Toolbox™ 加速在 MATLAB 中运行的算法。使用 GPU Coder™ 生成在任何现代 NVIDIA® GPU 上运行的 CUDA 代码以便进行加速或部署。

使用 GPU 加速算法。

最新功能

深度学习

为 Arm 和 Intel 处理器生成 YOLO v2 和 MobileNet-v2 网络代码

生成包含更多 C++ 语言功能及面向对象特性的 C++ 代码

为更多 MATLAB 数据类型生成代码

categorical、duration 和 table

代码生成报告对象

以编程方式访问代码细节并构建日志

MEX 探查

在 MATLAB 探查器中查看所生成 MEX 函数的执行时间

Optimization Toolbox 代码生成

为基于 fmincon 的非线性约束优化生成代码

Statistics and Machine Learning Toolbox 代码生成

为概率分布函数生成代码

在 MATLAB Online 中使用 MATLAB Coder 功能

关于这些功能和相应函数的详细信息,请参阅发行说明

通过 MATLAB 生成 C 代码的乐趣

了解有关使用 MATLAB Coder 的提示和最佳实践,并阅读 Delphi、Baker Hughes、iSonea 和 dorsaVi 等公司所生成代码的成功应用。

获取免费试用版

30 天探索触手可及。

马上下载

准备购买?

获取详细价格和并探索相关产品。

您是学生吗?

获得 MATLAB 和 Simulink 学生版软件。

了解更多