之前一直听说matlab代码可以转C和C++代码,但是一直都没有时间尝试,最近闲着无聊,就想来试试如何转换,上网查了很多资料,照着做下去,发现都有一些问题,之后自己琢磨了很久,终于将一个很简单的例子给做通了,现在将我在配置过程中遇到的问题以及我的解决方法写出来和大家分享。

  首先是mex -setup命令的配置。很多人在输入mex -setup的时候都显示缺少编译的SDK,这个时候需要我们自己下载安装一个gcc编译器,推荐使用TDM-GCC MINGW,下载地址为https://sourceforge.net/projects/tdm-gcc/?source=typ_redirect。一切采用默认安装,安装完成后需要配置环境变量。变量名为MW_MINGW64_LOC,变量值为C:\TDM-GCC-64(这个是默认安装位置)。重启matlab,再次输入mex -setup,会出现以下的提示:

 

图  1

大家请注意,上图表示编译器安装成功,很多人到了这一步就不知道如何走下去了,经过我的测试,有以下两种方式可以进入代码转换界面。第一种是在命令行输入coder,自动跳转到matlab coder界面,第二种是在主菜单中选择APP界面,然后点击matlab coder工具箱。

在这之前,有必要创建我们的转换函数文件以及调用该函数的测试脚本文件

mex_test.m

%待转换函数

function c=mex_test(a,b)
c=a+b;
end

%end

test1.m

%测试脚本文件

a=1;
b=2;
c=mex_test(a,b);

%end

进入工具箱的界面如图2所示,在这里,你需要选择待转换的文件,matlab对转换的文件做了限制,脚本文件时无法转换的,只有函数文件可以转换,也就是你可以将一个funcrion函数封装在M文件中,然后将这个M文件中的函数转换成C以及C++代码。

图 2

在图2选择待转换的M文件(我的是mex_test.m)后,出现以下界面:

图 3

点击图3右下角的next进入下一步,如下图所示。

 

图 4

在图4中,提示我们需要对输入的参数进行类型定义,有两种方法,一种是自动的,该方法只需要我们写一个调用该函数的脚本程序(test1是我的脚本程序),编辑器会自动识别各个输入参数的类型,如图5所示;另外一种是点击图4蓝标区域,手动指定参数类型。

图 5

点击next,进入下一步,如果采用的是第一种方法来定义参数类型,那么这一步会直接出现图6的图框内容,如果采用的是第二种方法,需要选择我们的测试脚本文件。然后点击check按钮,不出意外应该会通过,如图7所示。

图 6

图 7

点击进入下一步,出现图8所示的图框,选择相应的语言,即可。

好了,基本上大功告成。