Math 版 (精华区)

发信人: ysc (bajie), 信区: Math
标  题: 用c 编写mex程序[part 2] (转信)
发信站: 哈工大紫丁香 (Sun Oct 22 09:01:33 2000), 转信

发信人: fasiondog (乱了), 信区: MathTools       
发信站: BBS 水木清华站 (Sun Apr  4 10:55:56 1999)

发信人: dodoo (虚怀), 信区: Programming
标  题: 用C编写mex程序  [PART 2]
  前面说到通过把耗时长的函数用c语言实现,并编译成mex函数可以加快执行速度。这
  Matlab5.1本身是不带c语言的编译器的,所以要求你的机器上已经安装有VC,BC或Wat
com C中的一种。如果你在安装Matlab时已经设置过编译器,那么现在你应该就可以使用
mex命令来编译c语言的程序了。如果当时没有选,只要在Matlab里键入    mex -setup
,就会出现一个DOS方式窗口,下面只要根据提示一步步设置就可以了。由于我用的是w
  听说Matlab5.2已经内置了C语言的编译器,那么下面的这些可能就用不着了。可惜现
  需要注意的是,在设置编译器路径时,只能使用路径名称的8字符形式。比如我用的V
C5装在路径 C:\PROGRAM FILES\DEVSTUDIO下,那在设置路径时就要写成:C:\PROGRA~1
  这样设置完之后,mex就可以执行了。为了测试你的路径设置正确与否,把下面的程序
存为hello.c。


#include "mex.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])


{

 mexPrintf("hello,world!\n");

}


  假设你把hello.c放在了C:\TEST\下,在Matlab里用CD C:\TEST\ 将当前目录改为C:\

TEST\(注意,仅将C:\TEST\加入搜索路径是没有用的)。现在敲:


  mex hello.c


  如果一切顺利,编译应该在出现编译器提示信息后正常退出。如果你已将C:\TEST\加

入了搜索路径,现在键入hello,程序会在屏幕上打出一行:


hello,world!


  看看C\TEST\目录下,你会发现多了一个文件:HELLO.DLL。


  这样,第一个mex函数就算完成了。怎么样,很简单吧。下一次,会对这个最简单的程

序进行分析,并给它增加一些功能。


--

※ 来源: 心网 cag.seu.edu.cn [FROM: 202.119.30.69]

--

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: ysc.bbs@smth.org]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.265毫秒