声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

声振论坛 展示 科学计算 matlab 查看内容

Matlab与C++接口与混合编程讨论小结

2015-10-29 00:33| 发布者: aspen| 查看: 4352| 评论: 1|原作者: AaronSpark|来自: 声振论坛

摘要: Matlab与C++接口与混合编程讨论小结 一章、概述  Matlab是当今世界上使用最为广泛的数学软件,它具有相当强大的数值计算、 数据处理、 系统分析、图形显示,甚至符号运算功能,是一个完整的数学平 台,在这 ...
用c编写mex程序[开篇]

  用C编写mex程序 大家都知道,matlab是一种解释型的编程环境,也就是说,跟以前的b
asic一样,是读 一句执行一句的。这样做可以很方便的实现编程过程中的交互,也免去了麻
烦又耗时的 编译过程。但凡事有一利必有一弊,matlab在执行时速度慢也就根源于此。在ma
tlab里

  tic for i=1:10000 b(i)=a(10001-i); end 怎么样,是不是很慢? 你的程序里如果再
多几个这样的循环,运行速度就可想而知了。 上面程序的功能是将向量a里的数据逆序赋给向
量b。下面的程序可以实现相同的功能

  tic b=a(10000:-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与C++接口与混合编程讨论小结(四)

发表评论

最新评论

引用 afly 2006-3-28 19:40
请问版主有没有有关vc++6.0调用mcc产生的库函数(matlab7.1环境下)的具体步骤啊?在这个matlab7 .1版本下有关这个方面的资料太少了,谢谢了!

查看全部评论(1)

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2025-4-11 21:45 , Processed in 0.060073 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部