Matlab中Mex文件的创建和使用方法.ppt
《Matlab中Mex文件的创建和使用方法.ppt》由会员分享,可在线阅读,更多相关《Matlab中Mex文件的创建和使用方法.ppt(19页珍藏版)》请在三一办公上搜索。
1、1,九、MATLAB编译器和Notebook,编译器概述编译器的安装和配置创建MEX文件 创建独立的外部程序EXE文件Notebook,2,9.1 编译器概述,MATLAB编译器(The MATLAB Compiler,MCC)可以将M文件转化为C或C源代码,然后进一步编译链接成MEX文件或可执行程序或共享库文件。编译后可以大大提高程序的运行效率,甚至可以脱离MATLAB环境运行程序。,编译器主要包括:将C源码文件生成MEX文件的mex编译器;将C源码文件生成可独立运行文件的mbuild编译器;可以将M文件转换成C源码文件并调用mex或mbuild编译器生成MEX文件或exe可执行程序的mcc
2、编译器。,9.1.1 编译器的功能,产生源代码,进而生成MEX文件。MEX文件可以提高运行速度,并且可以隐藏文件算法,避免非法修改源文件。,2.产生C或C源码,进而生成独立的外部应用程序(EXE文件)。该程序无需MATLAB环境支持,如果源M文件使用了绘图指令,则需要图形库支持。,3.产生C MEX的S函数。加快Simulink中自定义的S函数模块的运行速度。,4.产生C共享库(动态链接库、DLL)或C+静态库。它们的使用无需MATLAB环境支持,但需要MATLAB的数学库。,3,9.1.2 编译器的局限性,不支持M脚本文件的编译。不支持用户自定义的对象。不支持eval,input,inlin
3、e等函数。不支持Java接口。,9.2.1 配置MATLAB编译器的前提准备,1.计算机必须安装有ANSIC/C+编译器。下面任何一种C/C+编译器均可。Microsoft Visual C/C+5.0以上版本。Borland C/C+5.0以上版本。LCC C(MATLAB自带,只能用于生成MEX文件)。,2.在安装MATLAB时,选中组件 MATLAB Compiler C/C+Math Library MATLAB C/C+Graphics Library,9.2 编译器的安装和配置,4,9.2.2 为产生MEX文件进行预配置,要实现从M文件到MEX文件的转换,就必须先对M编译器进行正确
4、设置。预配置包括两个过程:一是根据外部编译器的类型、软件位置对M编译器进行设置;二是利用MATLAB提供的标准文件对用户设置加以验证。,1.对MATLAB编译器应用程序mex的配置,启动配置:在MATLAB指令窗口运行mex-setup 命令mex-setup,Select a compiler:1 Lcc C version 2.4 in C:MATLAB6P5syslcc 2 Microsoft Visual C/C+version 6.0 in D:Program FilesMicrosoft Visual Studio 0 None Compiler:2,The default opt
5、ions file:D:Documents and SettingsslluApplication DataMathWorksMATLABR13mexopts.bat is being updated from C:MATLAB6P5BINWIN32mexoptsmsvc60opts.bat.Installing the MATLAB Visual Studio add-in.Updated D:Program FilesMicrosoft Visual Studiocommonmsdev98templateMATLABWizard.awx from C:MATLAB6P5BINWIN32MA
6、TLABWizard.awx,5,2.验证配置的正确性,验证分两步进行:首先验证mex命令是否可以将C源码转换成MEX文件;然后再验证mcc命令是否可以将M文件转换成MEX文件。mcc命令可以在M文件转换成C源码后,自动调用mex命令,将C源码转换成MEX文件。,利用MATLAB自带的yprime.c和yprime.m来验证mex和mcc命令。,mex my_yprime.c%由my_yprime.c文件生成my_yprime.dll文件my_yprime(1,1:4)%运行my_yprime.dll文件ans=2.0000 8.9685 4.000-1.0947,(1)验证mex应用程序 先
7、将externexamplemex目录下的yprime.c文件复制到自己的目录下,并改名为my_yprime.c。,which my_yprime%获得my_yprime.dll文件的位置信息D:Documents and SettingsslluMy DocumentsMATLABMYFILEmexmy_yprime.dll,clear my_yprime.dll%删除my_yprime.dll文件,(2)验证mcc应用程序,先将externexamplemex目录下的yprime.m文件复制到自己的目录下,并改名为my_yprime_m.m。,6,mcc-x my_yprime_mmy_y
8、prime_m(1,1:4)ans=2.0000 8.9685 4.000-1.0947,which my_yprime_mD:Documents and SettingsslluMy DocumentsMATLABMYFILEmexmy_yprime_m.dll,9.2.2 为产生独立外部应用程序进行预配置,要实现从M文件到独立外部应用程序的转换,也必须先对MATLAB编译器进行正确设置。预配置包括两个过程:一是根据外部编译器的类型、软件位置对MATLAB编译器进行设置,同时对MATLAB C数学函数库进行选择;二是利用MATLAB提供的标准文件对用户设置加以验证。,1.对MATLAB编译器
9、应用程序mbuild的配置,启动配置:在MATLAB指令窗口运行mbuild-setup 命令mbuild-setup,Select a compiler:1 Lcc C version 2.4 in C:MATLAB6P5syslcc 2 Microsoft Visual C/C+version 6.0 in D:Program FilesMicrosoft Visual Studio 0 None Compiler:2 The default options file:D:Documents and SettingsslluApplication DataMathWorksMATLABR1
10、3compopts.bat is being updated from C:MATLAB6P5BINWIN32mbuildoptsmsvc60compp.bat.,7,2.验证配置的正确性,验证分两步进行:首先验证mbuild命令是否可以将C源码转换成EXE文件;然后再验证mcc命令是否可以将M文件转换成EXE文件。mcc命令可以在M文件转换成C源码后,自动调用mbuild命令,将C源码转换成EXE文件。,利用MATLAB自带的ex1.c和hello.m来验证mbuild和mcc命令。,(1)验证mex应用程序 先将externexamplecmath目录下的ex1.c文件复制到自己的目录下,
11、并改名为my_ex1.c。,mbuild my_ex1.c%生成my_ex1.exe文件在Windows的DOS窗口运行my_ex1.exe文件查看其正确性。,(2)验证mcc应用程序,先将externexamplecompiler目录下的hello.m文件复制到自己的目录下,并改名为my_hello.m。,mcc-p my_hello.m在Windows的DOS窗口运行my_hello.exe文件查看其正确性。,D:Documents and SettingsslluMy DocumentsMATLABMYFILEmexmy_ex1,1 3 5 2 4 6 1.0000+7.0000i 4.
12、0000+10.0000i 2.0000+8.0000i 5.0000+11.0000i 3.0000+9.0000i 6.0000+12.0000i,D:Documents and SettingsslluMy DocumentsMATLABMYFILEmexmy_ex1Hello,World,8,9.3 创建MEX文件,创建MEX文件有两种方法:利用C源码编辑器编写C语言MEX文件,经过mex命令编译链接得到MEX文件。利用M文件编辑器编写M函数文件,经过mcc命令编译链接得到MEX文件。,MEX文件的优点:运行速度快,利用C代码实现循环体要比MATLAB快很多;对于已存在的C或FORTR
13、AN子程序,可以通过MEX文件在MATLAB环境中直接调用,而不必重新编写M文件;对于A/D、D/A卡,或其它PC硬件,可以直接用MEX文件进行访问;利用MEX文件,可以使用如Windows用户图形界面等资源。,9.3.1 C语言MEX文件的构成,程序的构成主要由入口子程序和计算功能子程序两部分组成。,void mexFunction(int nlhs,mxArray*plhs,int nrhs,const mxArray*prhs)/*用来完成MATLAB与计算子程序之间通信任务的代码*/,(1)入口子程序 入口子程序必须是mexFunction,其构成形式为:,mexFunction函数的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab Mex 文件 创建 使用方法

链接地址:https://www.31ppt.com/p-5438916.html