利用MATLAB coder将matlab代码转换为C/C++

04-13 1690阅读

编译环境:matlab2023Ra+VS2022

目标:利用matlab coder 完成对下面四个matlab函数C语言代码的转换

一、代码转换

利用MATLAB coder将matlab代码转换为C/C++

1、 菜单栏-APP-matlab coder

(如果没有找到,可以点击倒三角寻找)

利用MATLAB coder将matlab代码转换为C/C++

2、选中要转换的函数,添加进去

利用MATLAB coder将matlab代码转换为C/C++

3、添加后如下图所示,点击next

利用MATLAB coder将matlab代码转换为C/C++

4、核查代码出现的问题

如果代码没有问题,直接进行下一步,如果代码报错,点击Review查看问题所在并且修改代码,修改完成后点击next进入下一步;

利用MATLAB coder将matlab代码转换为C/C++

5、修改报错问题代码

可以看到代码中出现三个问题,均是因为C语言中变量(DataLFP_step_0)在使用时候是不允许未定义而直接使用的;在对应的位置修改即可;例如可以提前定义DataLFP_step_0变量:

DataLFP_step_0 = zeros(16,10000);

利用MATLAB coder将matlab代码转换为C/C++

6、定义输入数据类型

可以手动输入数据类型,也可以自动识别数据类型,推荐使用自动识别数据类型,会根据主函数自动识别输入的数据类型;之后点击next;

利用MATLAB coder将matlab代码转换为C/C++

7、运行代码

检查代码是否存在问题,如果没问题点击next,如果有问题按照提示继续修改问题;

利用MATLAB coder将matlab代码转换为C/C++

8、修改问题代码

由提示可知,报错是因为结构体定义有问题,修改后问题解决;点击next;

利用MATLAB coder将matlab代码转换为C/C++

利用MATLAB coder将matlab代码转换为C/C++

9、生成代码

根据自己的要求设置对应的参数,点击Generate生成代码!

利用MATLAB coder将matlab代码转换为C/C++

10、利用VS2022创建工程

找到转换后的代码文件夹,将转换好的代码添加到工程里面(.h,.c文件);

main.h,main.c在examples文件中,也要添加进来

另外需要将matlab中的tmwtypes.h头文件添加进来;该文件在MATLAB\extern\include路径下

利用MATLAB coder将matlab代码转换为C/C++

二、问题处理

为了减少matlab代码转换过程中出现的问题,matlab代码编程尽可能符合C语言的风格,注意一下几个问题,能够减少问题出现。

1、变量提前定义

matlab变量可以直接使用,但是在C/C++中需要先定义变量,然后才能使用;

例如转换过程中第五步:DataLFP_step_0 = zeros(16,10000);

2、注意变量的声明周期

C语言中,变量离开定义域所在空间后无法再次使用;

3、load加载数据函数无法使用

C/C++无法使用load加载matlab数据,如何才能使用C/C++加载matlab数据呢?

可以参考:使用C/C++读取matlab中.mat格式的数据-CSDN博客

4、clear  plot等函数无法转换 

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]