⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用c编写mex程序 [开篇].htm

📁 VC与Matlab混合编程文章.
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0113)http://bbs.sjtu.edu.cn/cgi-bin/bbsanc?path=/groups/GROUP_4/MathTools/DA6B7A1FF/D9BB618C8/D47AB10D3/M.1025941275.A -->
<HTML><HEAD><TITLE>SJTUBBS精华区文章</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK 
href="用C编写mex程序  [开篇].files/bbstyle.css" rel=stylesheet type=text/css>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR></HEAD>
<BODY>
<CENTER>
<TABLE class=title width="90%">
  <TBODY>
  <TR>
    <TH align=left class=title width="33%">文章阅读</TH>
    <TH align=middle class=title width="33%">饮水思源</TH>
    <TH align=right class=title width="34%">精华区</TH></TR></TBODY></TABLE>
<HR>

<TABLE class=doc>
  <TBODY>
  <TR>
    <TD class=doc><PRE>发信人: GzLi (苍鹰-文子), 信区: MathTools
标  题: c编写mex程序&lt;1&gt;(zz)
发信站: 饮水思源 (2002年07月06日15:41:52 星期六), 站内信件

发信人: dodoo (虚怀), 信区: Programming 
标  题: 用C编写mex程序  [开篇] 
  用C编写mex程序 
  大家都知道,matlab是一种解释型的编程环境,也就是说,跟以前的basic一样,
是读 
一句执行一句的。这样做可以很方便的实现编程过程中的交互,也免去了麻烦又耗时
编译过程。但凡事有一利必有一弊,matlab在执行时速度慢也就根源于此。在matlab
  tic 
  for i=1:10000 
  b(i)=a(10001-i); 
  end 
  怎么样,是不是很慢? 
  你的程序里如果再多几个这样的循环,运行速度就可想而知了。 
  上面程序的功能是将向量a里的数据逆序赋给向量b。下面的程序可以实现相同的功
  tic 
  b=a(10000:-1:1); 
  为什么这个程序运行速度就这么快呢?这是因为matlab里的基础矩阵运算函数,像
置,复制等等,都是以二进制程序的形式存在的,运行起来速度当然比解释执行10000
  所以编matlab程序时,应该尽量避免用循环语句,而使用等效的矩阵运算。虽然这
  但总是有的时候没法找到对应的矩阵运算来等效,或编出来的程序复杂得让人没法
  简单地说,mex程序就是根据一定的接口规范(mtlab提出的)编写的一个dll,matla
 
比如我编了一个mex函数,名字叫max2.dll,那么只要把这个dll所在的目录加到matlab
 
的搜索路径里(用addpath),就可以像调用普通matlab函数一样来调用它了。因为
 
循环体放到了二进制程序中,执行速度快得多。 
 
 
  Mex文件既可以用c,也可以用fortran来编。因为我用的是c语言,所以下面的介绍
 
是用c语言编写mex文件的方法。如果你用的是fortran,请你自己去看Apiguide.pdf
,里 
 
面有详细说明。 
 
 
 
[开场说明] 
 
 
  我的论文里的程序大多是用matlab编的,因为方向是图像处理,速度上的限制很大
 
不得已,拿着apiguide.pdf啃了两天,才算摸出点门道。现在论文写完了,想着这点
 
验也许有用,就不惮浅薄,打算把它写下来。因为还要准备论文讲稿,还有一堆表要
 
,不知能否写完,在这里预为说明,到时莫要骂我。 ^:^ 
 
 
-- 
 
※ 来源: 心网 cag.seu.edu.cn [FROM: 202.119.30.69] 

--
她总是警告我说:如果你不学习,你将什么都不是。绝对什么都不是。
                学习没有任何捷径可言。不要欺骗你自己。
welcome to <B><FONT class=col31>Matlab</FONT></B> http://bbs.sjtu.edu.cn/cgi-bin/bbsdoc?board=Matlab
welcome to <B><FONT class=col32>DataMining</FONT></B>  http://DataMining.bbs.lilybbs.net
<FONT class=col31>※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 211.80.38.29] </FONT>
</PRE></TR></TBODY></TABLE>
<HR>

<TABLE class=foot>
  <TBODY>
  <TR>
    <TH class=foot><A href="http://bbs.sjtu.edu.cn/">返回首页</A></TH>
    <TH class=foot><A 
href="http://bbs.sjtu.edu.cn/cgi-bin/bbssec">分类讨论区</A></TH>
    <TH class=foot><A 
  href="http://bbs.sjtu.edu.cn/cgi-bin/bbsall">全部讨论区</A></TH></TR></TBODY></TABLE></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -