概述
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语言 中的博文),运行的结果如下:
代码转换成功。
最后
以上就是激动火车为你收集整理的MATLAB转C语言的步骤与解决方案MATLAB转C语言的步骤的全部内容,希望文章能够帮你解决MATLAB转C语言的步骤与解决方案MATLAB转C语言的步骤所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复