如何将matlab代码生成为C/C++代码?

在C/C++软件开发时,若有一部分核心算法是用Matlab编写,但又不想逐行逐句进行翻译则可以采用Matlab自带的”coder”命令进行代码自动翻译,以达到省时省力的目的。下面对其用法进行详细说明:

1.将matlab代码封装为函数,形式如下:

function [aglA,aglB,aglC] = CalAglOfTriangle(a,b,c)
aglA = acosd((b^2 + c^2 - a^2) / (2 * b * c));
aglB = acosd((c^2 + a^2 - b^2) / (2 * c * a));
aglC = acosd((a^2 + b^2 - c^2) / (2 * a * b));
end

2.新建一个Test.m脚本,调用刚封装的函数

clear all;
aLine = 36371; bLine = 6371; cLine = 34197.667473781417;
[aglA,aglB,aglC] = CalAglOfTriangle(aLine,bLine,cLine)

3.运行测试脚本,查看输出结果

4.在命令窗口输入

coder

5.点击右边的“…”按钮,选择要转换的函数

可以看到.prj工程所在的绝对路径,另外根据需要选择数值转换方式,这里用默认方式

6.点右下角“Next”

7.点击的“…”按钮,选择调用函数的脚本,即Test.m

8.点击“自动定义输入类型“按钮

注意: 这里是三个double型,根据实际可以点击修改

9.点右下角“Next”

10.点击“检查问题“按钮

绿色对勾表示未检测到问题,若检测到问题,应根据提示进行处理!

11.点右下角“Next”

12.根据需要选择要生成的语言C或者C++,点击“生成“

13.稍等片刻,出现如下界面

14.点右下角“Next”

至此,已经转换成功!在提示的路径下可以找到转换后的代码以及示例。

15.找到对应的.h和.cpp

16.用VS新建控制台工程,并将上面的.h和.cpp添加进工程

17.根据编译报错提示,补充缺失的文件

18.在main函数里调用自动生成的函数,运行结果正确

总结:本文演示的只是一个简单的matlab函数(根据三角形三条边计算三个夹角)。实际的matlab代码或者函数可能比较复杂,在根据coder命令提示进行问题检测中可能会遇到各种报错提示,此时无需惶恐,只有静下心去分析,大部分报错都是可以屏蔽或者修改的。笔者之前曾将十几个复杂的Matlab函数最后整合封装为一个C++类。删除多余的头文件后,只剩下一个.h和.cpp就🆗了。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值