Matlab调用C/C++之设置过程

来源:互联网 发布:mac 打开系统文件夹 编辑:程序博客网 时间:2024/06/05 02:57

Matlab在进行矩阵计算时的优势非常明显,但是当Matlab遇到for循环的时候,程序的运行速度就会很慢。学会用Matlab调用C/C++的程序很有必要。折腾了快一天了,终于算是弄好了。

准备工作:
(1)安装Matlab 2012b。
(2)http://cn.mathworks.com/support/compilers/R2012b/win64.html 下载Microsoft Windows SDK 7.1 并安装。记住你的安装路径,我的如下:

这里写图片描述

过程:
1、打开Matlab,在命令窗口输入“mex -setup”,如图所示:

这里写图片描述

2.如果默认路径下的编译器,选择“y”;我在这里选择了“n”,输出了适合该版本的Matlab的编译器。

这里写图片描述

3、选择你想使用的编译器编号,我这里选择的是“11”。
在“ Do you want to use this compiler [y]/n?”处选择n。
在“Please enter the location of your compiler: [C:\Program Files (x86)\Microsoft Visual Studio 10.0]”后面输入你的路径并回车。我输入的是“ [C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A]”。
额,结果还是不行。。

这里写图片描述

4、接着试,输入“mex -setup”后,再接在选择“y”,看是否有可以被识别的编译器。结果有了,哈哈哈。。

这里写图片描述

5、测试一下
将一下代码写入“hello.c”,并保存到当前目录。

#include "mex.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {int i; i=mxGetScalar(prhs[0]); if(i==1)   mexPrintf("hello,world!\n"); else   mexPrintf("大家好!\n"); }

6、运行结果如下:

这里写图片描述

当输入“mex hello.c”后,目录下多了个文件“hello.mexw64”,这个文件是干嘛的,嘿嘿,我也不知道。。。反正可以运行了,,,

好吧,好吧,我承认我是不对的了,我不知道“mex”是干嘛的,也不知道为什么要这么做,也不明白hello.c中的函数头。。。
知其然而不知其所以然,是很大的弊病,那个,我下篇文章补充。。
一想到我那个蜗牛速度的代码要飞起来了,我就忍不住的激动ing。。。额,又想多了,那段C++版本的代码还没有写。。

(参考 matlab中调用c++函数)

0 0
原创粉丝点击