MATLAB编码器
从MATLAB代码生成C和c++代码
MATLAB Coder™从MATLAB生成C和c++代码®适用于各种硬件平台的代码,从桌面系统到嵌入式硬件。它支持金宝app大多数MATLAB语言和广泛的工具箱。您可以将生成的代码作为源代码、静态库或动态库集成到项目中。生成的代码具有可读性和可移植性。您可以将它与现有C和c++代码和库的关键部分结合起来。您还可以将生成的代码打包为一个mex函数,以便在MATLAB中使用。
当与嵌入式编码器使用®, MATLAB Coder提供代码定制、目标特定优化、代码可追溯性以及软件在环(SIL)和处理器在环(PIL)验证。
要将MATLAB程序部署为独立的应用程序,请使用MATLAB编译器™。要生成与其他编程语言集成的软件组件,请使用MATLAB编译器SDK™。
开始:
免版税部署算法
使用任何C/ c++编译器在任何硬件上编译和运行生成的代码,从桌面系统到移动设备再到嵌入式硬件。生成的代码是免费的,可以在商业应用程序中免费部署给您的客户。
MATLAB编码器的成功故事
了解各种行业的工程师和科学家如何使用MATLAB Coder为他们的应用程序生成C/ c++代码。
金宝app支持的工具箱和函数
MATLAB Coder从广泛的MATLAB语言特性生成代码,设计工程师使用这些特性将算法开发为大型系统的组件。这包括来自MATLAB和配套工具箱的超过2500个操作符和函数。
生成带有命名空间的c++代码
MATLAB Coder可以在命名空间中生成c++代码,使其易于与其他可能具有相同函数或数据类型名称的源代码集成。代码生成器将所有生成的函数和类型定义打包到名称空间中。
从MATLAB类生成c++类
MATLAB Coder从MATLAB代码中的类生成c++类,包括值类、句柄类和系统对象。生成的代码可以编译成c++库或可执行文件,也可以集成到现有的c++源代码中。
在生成的函数接口中使用动态分配的c++数组
生成MATLAB函数的c++代码,这些函数在编译时接受或返回数组大小未知或界限超过预定义阈值的数组。在生成的代码中,数组的内存被动态分配,并实现为一个名为编码器:数组
.除了异常安全的内存释放,编码器:数组
提供api来访问和管理动态数组。
部署端到端深度学习算法
部署各种训练有素的深度学习网络,如ResNet-50和MobileNet-v2,以及从深度学习工具箱™到英特尔的LSTM和其他层®和手臂®皮质®cpu。生成用于预处理和后处理的代码,以及经过训练的深度学习网络,以部署完整的算法。
为深度学习推理生成优化代码
因为MATLAB Coder只生成使用特定算法运行推理所需的代码,所以代码比其他深度学习解决方案更快,使用的内存更少。金宝搏官方网站生成的代码调用优化库,包括用于英特尔处理器的英特尔MKL-DNN和用于ARM Cortex处理器的ARM计算库。使用GPU Coder™通过生成CUDA来加速或部署算法®在任何现代NVIDIA上运行的代码®GPU。
部署端到端机器学习模型
通过为整个机器学习算法(包括预处理和后处理)生成C/ c++代码来部署统计数据和机器学习模型。更新已部署模型的参数,而不重新生成C/ c++预测代码。
桌面和云平台上的原型
使用MATLAB Coder应用程序或等效的命令行函数为信号处理、计算机视觉、深度学习、控制系统或其他应用程序快速生成代码,然后为您的硬件编译代码。
嵌入式和移动平台的原型
手动将生成的代码集成到应用程序中,以任何设备为目标。使用MATLAB树莓派支持包自动化树莓派的过程。金宝app
从原型转向生产
使用MATLAB Coder with Embedded Coder生成代码,这些代码利用处理器特定的intrinsic,可以比标准ANSI/ISO C/ c++代码执行得更快。
使用易于集成的简单接口生成代码
生成的代码以自然的方式使用C/ c++类型,简化了与外部代码的集成。您可以将生成的代码集成为源代码或库。可信的C/ c++库或组件可以带入MATLAB进行高保真测试,也可以从生成的代码中自动调用。
优化生成代码的性能
应用优化来调整执行速度、内存使用、可读性和可移植性之间的平衡。使用分析工具来识别瓶颈。为了进一步提高性能,可以生成多核OpenMP代码,并在可用时调用优化的库,如LAPACK、BLAS和FFTW。
在集成之前重用生成代码的MATLAB测试
重用现有的MATLAB测试,以验证交互式MATLAB环境中生成的代码的行为。使用MATLAB单元测试框架快速开发一组丰富的回归测试,可用于验证生成的C/ c++代码。
加速cpu上的算法
您可以从MATLAB代码中调用生成的代码作为MEX函数,以加快执行速度,但性能将根据MATLAB代码的性质而有所不同。您可以分析生成的MEX函数,以确定瓶颈并集中精力进行优化。