MATLAB转C语言的步骤与解决方案

20 篇文章 16 订阅
本文详细介绍了如何使用MATLAB Coder将MATLAB函数转换为C语言代码,并通过一个三阶矩阵求逆的例子进行演示。从创建MATLAB函数,到使用MATLABCoder工具,再到设置输入参数类型和处理全局变量,最后在VS2017中验证生成的C代码并展示运行结果。整个过程清晰展示了MATLAB到C语言转换的完整步骤。
摘要由CSDN通过智能技术生成

MATLAB转C语言的步骤

步骤

我们首先以求三阶矩阵的逆为例,首先在matlab中编写的代码如下:

  function[res] = inverse(src)
  res = inv(src)
  end

此为新建的一个函数,函数的保存名称为 inverse.m ,需要注意的是这个.m文件必须是函数文件,而不能是脚本文件,而且文件的名称和函数的名称必须一致。
在matlab中输入一个三阶矩阵与输出的结果如下所示:
`在这里插入图片描述
在本文的末尾会验证在VS2017C语言代码的运行结果。
进入主题,在已经写好了函数的前提下,我们在matlab主界面点击 APP (在编辑器旁边),然后点击下拉框,输入code找到如下图的功能模块:
在这里插入图片描述
点击上图中的第一个图标,即 MATLAB Coder ,会弹出下面的界面。第一步,可以直接输入函数的名称,或者点击 Add Entry-Point Function 浏览出函数文件。然后点击next.如下图:
在这里插入图片描述
弹出如下窗口,要求输入指定的形参类型,可以直接输入,或者点击 Autodefine Input Types ,直接填入形参类型。

如果被转的函数中还调用了全局变量,点击下图的add global,把全局变量的名称和类型都填写上。
在这里插入图片描述

点击next

弹出下图(在此界面的输入中可以选择直接输入函数的输入,或者选择一个引用了这个函数的程序,系统会直接检测出你定义的函数的输入形式):点击check for issues按钮,matlab会检测一下你写的m函数能否转换成C函数,如果不能,会给出report,告诉你为什么不能转,哪一行代码导致的不能转,把bug修改完之后,点击clear Mex清除刚才的结果(如果正确的话则不会显示这个按钮),再点击check for issues按钮重新检查即可。如果检测没问题,右下角的next按钮就亮了,并闪烁,你可以点击next了。
在这里插入图片描述
点击next之后就会出现如下界面,可以根据要求进行选择:
在这里插入图片描述
结果如下:
在这里插入图片描述
下面就是验证生成代码是否正确,我们采用VS2017编写代码及逆行验证,VS2017中的代码如下:

#include <stdio.h>
#include "inverse.h"
int main()
{
	double a[9] = { 1,0,1,0,2,1,1,1,1 };
	double b[9];
	inverse(a, b);
	
	for (int i = 0; i < 9; i++)
	{
		printf("%f ", b[i]);
		printf("\n");
	}
	return 0;
}

其中,我把matlab生成的代码做成 inverse.h 的头文件(VS中将代码块封装成头文件的步骤请参照我 C语言 中的博文),运行的结果如下:
在这里插入图片描述
代码转换成功。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值