📄 1.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://sbbs.seu.edu.cn"><font face="黑体"><big><big>seu</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> 在matlab里面调用c (BM: luckzpz) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="mex.htm">回到开始</a>][<a href="mex.htm">上一层</a>][<a href="2.htm">下一篇</a>]
<hr><p align="left"><small>发信人: babylon (淡蓝的晚间), 信区: MathTools <br>
标 题: 用c编写mex程序[开篇]--dodoo(转载) <br>
发信站: 虎踞龙蟠BBS站 (2000年06月03日20:28:39 星期六), 转信 <br>
<br>
【 以下文字转载自 Radio 讨论区 】 <br>
【 原文由 babylon 所发表 】 <br>
用C编写mex程序 <br>
大家都知道,matlab是一种解释型的编程环境,也就是说,跟以前的basic一样,是读 <br>
一句执行一句的。这样做可以很方便的实现编程过程中的交互,也免去了麻烦又耗时的 <br>
编译过程。但凡事有一利必有一弊,matlab在执行时速度慢也就根源于此。在matlab里 <br>
tic <br>
for i=1:10000 <br>
b(i)=a(10001-i); <br>
end <br>
怎么样,是不是很慢? <br>
你的程序里如果再多几个这样的循环,运行速度就可想而知了。 <br>
上面程序的功能是将向量a里的数据逆序赋给向量b。下面的程序可以实现相同的功能 <br>
tic <br>
b=a(10000:-1:1); <br>
为什么这个程序运行速度就这么快呢?这是因为matlab里的基础矩阵运算函数,像转 <br>
置,复制等等,都是以二进制程序的形式存在的,运行起来速度当然比解释执行10000次 <br>
所以编matlab程序时,应该尽量避免用循环语句,而使用等效的矩阵运算。虽然这样 <br>
但总是有的时候没法找到对应的矩阵运算来等效,或编出来的程序复杂得让人没法修 <br>
简单地说,mex程序就是根据一定的接口规范(mtlab提出的)编写的一个dll,matla <br>
比如我编了一个mex函数,名字叫max2.dll,那么只要把这个dll所在的目录加到matlab <br>
的搜索路径里(用addpath),就可以像调用普通matlab函数一样来调用它了。因为把 <br>
<br>
循环体放到了二进制程序中,执行速度快得多。 <br>
<br>
<br>
Mex文件既可以用c,也可以用fortran来编。因为我用的是c语言,所以下面的介绍都 <br>
<br>
是用c语言编写mex文件的方法。如果你用的是fortran,请你自己去看Apiguide.pdf,里 <br>
<br>
面有详细说明。 <br>
<br>
<br>
<br>
[开场说明] <br>
<br>
<br>
我的论文里的程序大多是用matlab编的,因为方向是图像处理,速度上的限制很大。 <br>
<br>
不得已,拿着apiguide.pdf啃了两天,才算摸出点门道。现在论文写完了,想着这点经 <br>
<br>
验也许有用,就不惮浅薄,打算把它写下来。因为还要准备论文讲稿,还有一堆表要填 <br>
<br>
,不知能否写完,在这里预为说明,到时莫要骂我。 ^:^ <br>
<br>
<br>
<br>
-- <br>
DEADorALIVE <br>
<br>
※ 来源:.虎踞龙盘东南站 sbbs.seu.edu.cn.[FROM: 202.119.22.71] <br>
-- <br>
※ 转载:.虎踞龙蟠BBS站 sbbs.seu.edu.cn.[FROM: 202.119.22.102] <br>
</small><hr>
<p align="center">[<a href="mex.htm">回到开始</a>][<a href="mex.htm">上一层</a>][<a href="2.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -