matlab工具将matlab脚本转C语言实现

Matlab 提供了将matlab语句转换成C或者C++语句的工具Matlab coder,但是部分matlab实现的函数是不能转换的,能够转换的函数列表在这个链接中可以找到:https://www.mathworks.com/help/coder/ug/functions-supported-for-code-generation-alphabetical-list.html。
下面就以matlab 2017b为例,说明一下转换过程:
首先在matlab 2017b找到matlab coder工具,点击APPS标签,如下图:
在这里插入图片描述
选择需要转换的matlab函数,选择add,点击Next,如下图:
在这里插入图片描述

点击下图框中可以增加函数,点击Next:
在这里插入图片描述
点击设置参数类型:
在这里插入图片描述
设置两个参数的参数类型:
在这里插入图片描述
还可以添加全局变量;
在这里插入图片描述因为是标量,所以1x1,如果是矢量,可以选择mxn,输入m,n,也可以选择不定个数。
直接next,再next,更高级设置点more setting,Tool chain可以下拉选择平台,我使用的是Vs,选择“auto locate”当前开发工具,默认点击Generate,开始生成代码,
在这里插入图片描述
如果途中没有错误,出现下面的类似画面,表示生成成功,
在这里插入图片描述
成功生成之后,在add.m同目录下产生一个codegen目录中,lib目录下有所有生成C文件,按照matlab函数名命名目录,在add目录下,有个add.c文件,截取部分源码如下:

#include "add.h"

/* Function Definitions */

/*
 * Arguments    : double a
 *                double b
 * Return Type  : double
 */
double add(double a, double b)
{
  return a + b;
}

/*
 * File trailer for add.c
 *
 * [EOF]
 */

感觉生成的代码包括一个库工程还有测试代码,但是我没有试过,我新建一个控制台工程来测试代码,不需要修改任何代码,编译顺利通过。

需要注意的是,生成代码并不是像这个简单例子那么顺利,例如如果函数中warning功能,就不能转换成C,但是有error却可以,varargin也不支持,另外,参数的类型设置需要设置正确,否则生成代码时会出现错误,特别是数组与元胞数组时。

  • 6
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值