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

编译环境:matlab2023Ra+VS2022

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

一、代码转换

1、 菜单栏-APP-matlab coder

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

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

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

4、核查代码出现的问题

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

5、修改报错问题代码

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

DataLFP_step_0 = zeros(16,10000);

6、定义输入数据类型

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

7、运行代码

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

8、修改问题代码

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

9、生成代码

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

10、利用VS2022创建工程

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

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

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

二、问题处理

为了减少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等函数无法转换 

  • 27
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值