MATLAB Coder 可以将MATLAB代码生成工程中常用的嵌入式或其他硬件平台的C或者C++代码。使用者可以在MATLAB中进行验证,然后将生成后的代码集合到工程中。集合的方式可以是源码,静态库和动态库。

在最近发布的 R2018b (4.1版)中,Coder 中新增了一些功能,包括了对深度学习,统计与机器学习,5G和模糊逻辑,跟踪和传感融合等工具箱进行了update,另外一部分是对 Coder 本身的功能进行了扩展,增加了树莓派硬件的支持包,对标准数学库,类支持和编译器支持等进行了扩展。
---
本文将对如何利用 MATLAB 的 Coder 将 MATLAB 代码转为 C (C++同理)进行介绍。
首先,在MATLAB中创建一个函数,这里构造了一个简单的函数RadarSay,假设存在4个通道的数据,通过该函数,可以得到目标的距离,速度和角度,以及SNR信息。

然后在写一个测试脚本,验证函数是否实现功能。

可以看到,通过运行测试脚本,利用测试数据可以得到目标的距离,速度和角度以及SNR信息。

下一步,在APP界面中打开Coder,进行MATLAB转C的处理。

打开将要进行转C的MATLAB函数

定义函数输入参数的数据类型,这里可以手动输入也可以利用测试脚本自动识别。

然后对转C的MATLAB函数进行错误和语法检查。

最后一步生成C/C++代码,直接点击生成即可。

生成成功会有完成提示。

下面将用VS2013对生成的C语言进行验证,如图创建一个空的工程。

将上面生成的.c文件和.h文件分别添加到头文件和源文件目录下。

对Coder的C代码结果与MATLAB结果进行对比,结果一致。

> 软件环境MATLAB R2018a 64bit
VS2013
后台回复MATLAB可获取R2018a版本MATLAB的下载链接。