matlab生成exe应用程序
MATLAB程序封装成EXE文件

MATLAB程序封装成EXE文件1.设置编译器:首先需要配置自己的Matlab Compiler,Matlab Compiler的作用是将程序编译成为机器可以直接执行的程序。
配置Compiler的方法是在Matlab命令窗口输入:mbuild -setup,按提示选择matlab自带编译器LCC。
实验记录:>> mbuild -setup[1] Lcc-win32 C2.4.1 in D:\PROGRA~1\MATLAB\R2007a\sys\lcc[2] Microsoft Visual C++6.0 in C:\Program Files\Microsoft Visual Studio[0] NoneCompiler:1Please verify your choices:Compiler:Lcc-win32 C2.4.1Location:D:\PROGRA~1\MATLAB\R2007a\sys\lccAre these correct?([y]/n):yTryingtoupdateoptionsfile:From template:Done . . .-->"D:\PROGRA~1\MATLAB\R2007a\bin\win32\mwregsvrD:DllRegisterServer in D:-->"D:\PROGRA~1\MATLAB\R2007a\bin\win32\mwregsvrD:DllRegisterServer in D:>>说明:因为我的机器上原来装有Microsoft Visual C++6.0,所以会有两个编译器,会提示你选择一个,这里选择系统自带的,也就是“1”。
2、编译已经写好的m文件说明:mywavelet.m是我写的测试文件,内容如下:function mywaveletclear all;a=[100:900];b=sqrt(a);plot(a,b);在matlab环境中编译文件,方法是:mcc-m mywavelet。
matlab生成可执行文件(exe)

其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,添加的方法是:
右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
第三步是将编译生成的相相关文件拷贝到同一目录下(当然其他目录亦可)。
Click on the link below to view an image of the Registry Editor, which shows how to delete a registry key for MATLAB 6.5 (R13).
After following these steps, you should be able to launch MATLAB successfully.
在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:
Mbuild -setup
然后根据提示执行相应的操作,使用者可根据自己计算机中现有编译器的情况选择合适的编译器,如VC++ 6.0、VC++7.0、Bland C的编译器等,目前Matlab好象还不支持VC++8.0(我计算机安装的就是VC++2005,Matlab就无法识别)。当然,如果你的计算机里根本就没有安装其他任何语言的编译器,也可选择Matlab自带的Lcc编译器,其实这个编译器对大多数用户已经够用了(我就是选择的Matlab自带的Lcc编译器)。
If you are able to successfully launch MATLAB under a different username:
利用Matlab自带工具箱生成Dll和EXE文件

利用Matlab自带工具箱生成Dll和EXE文件想到后期开发需要用到matlab与vb或者其他语言进行编程操作,边想着如何利用matlab强大的功能,而又脱离其软件本身进行开发。
利用DLL文件与VB混编进行开发是方法之一。
本以为是一个很简单构建过程,不过还是在不经意间浪费了两天时间。
回顾整个安装过程,主要还是没有对整体进行构建,没有借鉴前人的经验啊。
构建过程中遇到很多问题。
这里简单总结一下安装过程,顺便把Matlab生成dll文件,以及打包生成EXE文件的过程做一下介绍。
我的版本好为:MATLAB R2009a一、生成独立可执行的程序(dll and exe文件)步骤1、安装编译器。
可有多种选择,本机安装的是Microsoft Visual C++ 6.0(必须装);2、设置编译器。
在matlab命令行输入mbuild -setup,选择安装的编译器为Microsoft Visual C++ 6.0;这里需要的注意的是,编译器路径,编译文件路径的选择,我选择的都是与Microsoft Visual C++ 6.0相关的默认文件夹。
在看到Done字样后,开始在Matlab中设置编译参数。
3、输入deploytool命令(其他版本可能为matcom等),出现以下界面:4、设置相关的参数。
这里可以做很多操作,如图所示,最终结果可生成可供VB调用的dll文件。
启动deploytool后将主程序放到main function里,其他子程序放到other files里,如果有c程序,则放到c/c++ files里.加入你想要编译的m文件,(要加入到自己命名的主目录下,如果还有其他非m文件,放到other files里面)按下编译器就可以编译了.编译完成后会,就会在当前目录下生成这两个文件夹distrb src5、编译的最终结果如下图所示.另外,进行打包操作.我选择了Matlab Compiler编译出可直接运行的EXE文件。
Matlab生成P文件及exe文件方法

1.Matlab生成P文件方法:P文件是对应M文件的一种预解析版本(prepar sed versio n)。
因为当你第一次执行M文件时,Matlab需要将其解析(parse)一次(第一次执行后的已解析内容会放入内存作第二次执行时使用,即第二次执行时无需再解析),这无形中增加了执行时间。
所以我们就预先作解释,那么以后再使用该M文件时,便会直接执行对应的已解析版本,即P文件。
但又因为Ma tlab的解析速度非常快,一般不用自己作预解析。
只有当一些程序要调用到非常多的M文件时,如GUI应用程序时,才会作预解析,以增加以后的调用速度。
P文件可以用来作保密代码之用,如果你给别人一个M文件,别人可以打开来看到你所有的代码和算法。
如果你的代码不想被别人看到,那可以给他P文件。
pcode函数也可以应用在M函数文件。
Matlab命令:pcodepcodefunpcode*.mpcodefun1 fun2 ...pcode... -inplac eDescri ptionpcodefun obfusc ates(i.e., shroud s) M-file fun.m for the purpos e of protec tingits propri etary source code. The encryp ted M-code is writte n to P-file fun.pin the curren t direct ory. The origin al M-file can be anywhe re on the search path.If the inputfile reside s within a packag e and/or classdirect ory, then the same packag e and classdirect ories are applie d to the output file. See exampl e 2, below.pcode*.m create s P-filesfor all the M-filesin the curren t direct ory.pcodefun1 fun2 ... create s P-filesfor the listedfuncti ons.pcode... -inplac e create s P-filesin the same direct ory as the M-files.An erroroccurs if the filescannot be create d.2.Matlab编译生成e x e可执行文件1、首先要保证你的程序是函数型的,而不是脚本形式的。
Matlab编写的程序生成EXE可执行文件的方法

Matlab生成EXE可执行文件1、M文件生成可执行文件1.1、Run timeserver的配置执行这个命令要在命令提示符下进入%matlab%\toolbox\runtime\bin\win32目录。
输入:rtsetup -f %matlab%\bin\win32\matlab.exe –s **** 。
这儿****代表你输入的N个数字或者字母,它将作为未来开发的应用程序的密码用来识别不同的文件是否出自同一程序。
在正常情况下,执行完这居命令以后,dos不会有任何提示符。
1.2、编写在matlab中运行的程序1.3、编写配置文件把toolbox\runtime\下面的两个模板文件matlabrt_template.m,和pathdefrt_template.m文件修改程自己的matlabrt.m和pathdefrt.m文件。
1.4、编译生成p文件把你要编译的源程序放在toolbox\local目录下一个子目录中,然后把这个目录设为matlab的当前目录――一定要保证这一点。
在matlab中输入如下命令:[LOG, DEPFUNOUT, PCODEOUT] = BUILDP({‗matlabrt‘});如果出现BUILDP finished but there may be file(s) with either problem symbols or EV AL-like constructs. Check BUILDP log for details. 。
这是很正常的,很多时候都会出现这个提示。
输入:Depfunout{1}把它的内容拷到toolbox\runtime\oem\的list.txt中去(如果没有list.txt则新建).1.5、打包,发布退出matlab,打开命令提示符,到toolbox\runtime\oem下,执行packege。
按照它的提示先后输入matlab的目录,文件列表名称(list.txt),还有应用程序的名称。
将matlab中的GUI快速生成可执行exe

如何将gui生成exe方法一:更改图标:在OpeningFcn中加入:javaFrame = get(hObject,'JavaFrame');javaFrame.setFigureIcon(javax.swing.ImageIcon('cal.jpg'));已有gui.m文件和gui.fig文件1 在matlab的command窗口中输入mcc -B sgl GUI.m2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器此时仍需matlab所必需的动态连接库。
3. 将 <matlab path >/extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上如果是7.0以上版本,应该是MCRInstaller.exe,路径:<matlabpath>\toolbox\compiler\deploy\win32\MCRInstaller.exe4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。
可以将这些.dll考入system32, 也可以直接放在应用程序目录下。
而toolbox目录则必须与应用程序同一目录。
方法二:matlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab也提供了这样的工具。
1. 转化为c/c++程序并编译为.exe先验证mcc是否可用,用matlab中的example验证即可建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure 编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等程序发布需要.exe、bin\、.fig2. 在未装matlab的电脑上运行程序需要数学 运行时库、图像运行时库以及用到的工具箱mex文件前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布以下通过注册表自动添加path路径%--------------------------------------------------------------------------------------Screen.Next(); -- 进入下一个屏幕resultDialog = Dialog.Message("注意", "向环境变量中加入matlab数学库及图象库的安装路径?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);if (resultDialog == IDYES) then --加入安装路径strPath = Registry.Get(HKEY_CURRENT_USER, "Environment", "path", true); if strPath ~= "" thenstrPath = String.Concat(strPath, ";");endstrPathToAdd = SessionVar.Expand("%AppFolder%");strPathToAdd = String.Concat(strPathToAdd,"//MATLAB6p5//bin//win32"); -- 如果路径中无该位置,则加入if String.Find(strPath,strPathToAdd) == -1 thenstrPath = String.Concat(strPath, strPathToAdd);Registry.Set(HKEY_CURRENT_USER, "Environment", "path", strPath, REG_SZ);endend%--------------------------------------------------------------------------------------方法三:在网上搜了一个方法,还没有用过, 贴在这里仅供参考:一、 完全可以,而且生成的.exe文件可以在没有安装matlab的机器上使用,方法吗---首先,使用mcc编译得到.exe文件,具体参数见帮助文件;其次,将.exe文件及相关资源文件以及一个称为mglinstaller.exe的软件包一起拷到别的机器上,运行mglinstaller.exe,并添加环境变量path,即可执行.exe文件第三,在MATLAB环境,执行命令mcc -m -B sgl file.m或者 mcc -p -B sglcpp file.m请键入help mcc看帮助。
matlab函数exe文件生成

转载请标明:/chenyujing1234参考文章:/s/blog_4f0fc2700100moj2.html一、生成独立可执行的程序(exe文件)步骤1、安装编译器。
可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2005实现。
MATLAB编译器1、产生C源码,并进而生成MEX文件。
这种MEX文件的优点是:一,当程序变量为实数,或向量化程度较低,或含有循环结构时,采用该法可提高运行速度;二,与ASCII码的M文件不同,MEX文件采用二进制代码生成,能更好地隐藏文件算法,使之免遭非法修改。
2、产生C或C++源码,以便与其他C/C++模块结合行成独立的外部应用程序。
运行所产生的应用程序,无需MATLAB环境的支持,但是往往需要MATLAB提供的C/C++数学库;如果调用了MATLAB绘图指令,则还需要MATLAB提供的C/C++图形库3、产生C MEX的S函数,与Simulink配合使用,以提高S-函数的运行速度4、产生C 共享库(动态链接库)或C++静态库,他们的使用无需MATLAB环境的支撑,但是需要MATLAB的数学库局限性1、无法编译脚本文件2、不支持用户自定义对象3、不支持eval,input,inline等函数4、不支持的MATLAB的Java接口2、设置编译器。
在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。
[cpp]view plaincopy1.>> mbuild -setup2.Please choose your compiler for building standalone MATLAB applications:3.4.Would you like mbuild to locate installed compilers [y]/n? y5.6.Select a compiler:7.[1] Lcc C version 2.4 in D:\MATLAB701\sys\lcc8.[2] Microsoft Visual C/C++ version 7.0 in C:\Program Files\Microsoft VisualStudio .NET9.[3] Microsoft Visual C/C++ version 6.0 in D:\Microsoft Visual Studio10.11.[0] None12.piler: 214.15.Please verify your choices:16.piler: Microsoft Visual C/C++ 7.018.Location: C:\Program Files\Microsoft Visual Studio .NET19.20.Are these correct?([y]/n): y21.22.Try to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R14\compopts.bat23.From template: D:\MATLAB701\BIN\WIN32\mbuildopts\msvc70compp.bat24.25.Done . . .26.27.28.--> "D:\MATLAB701\bin\win32\mwregsvr D:\MATLAB701\bin\win32\mwcomutil.dll"29.30.DllRegisterServer in D:\MATLAB701\bin\win32\mwcomutil.dll succeeded31.32.--> "D:\MATLAB701\bin\win32\mwregsvr D:\MATLAB701\bin\win32\mwcommgr.dll"33.34.DllRegisterServer in D:\MATLAB701\bin\win32\mwcommgr.dll succeeded35.36.>>3、调用编译器。
matlab生成exe应用程序

matlab生成exe应用程序通常编写的matlab程序只能在装有matlab的机械上执行,可是没有安装matlab的如何办呢那个能够利用matlab的自带工具-Deploy Tool。
Matlab的Deploy Tools 能够方便的将matlab工程编译成所支持的类型,例如一样的Windows应用程序,Matlab for .NET/COM ,Matlab for Java,Matlab for Excel 等。
其原理确实是先利用MCC 编译器依照你的m文件生成相应的c语言文件和数据文件,然后在挪用C/C++编译器编译成可执行文件或控件库。
1、安装编译器。
可有多种选择,matlab自带了一个LCC,推荐利用VC++,我基于VS 2020实现。
2、设置编译器。
在matlab命令行输入mbuild –setup和mex –setup,选择安装的c编译器。
3、挪用编译器。
此处利用MATLAB下的一个GUI平台deploytool下完全实现。
在命令窗口输入deploytool即可看到。
具体利用方式请Help。
固然,也能够输入mcc -m filaname,filaname为要转成exe的m文件;注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;在Matlab 2007a 中Deploy Tool实际上是一个MCC的前端界面(用MCC的命令行参数一样能够完成编译工作)下面是用Deploy Tool来编matlab工程。
第一创建prj工程,从菜单中定位到“New”-》“Deployment Project” 然后会提示选择类型然后添加文件接着你就能够够编译了第一次编译会让你去选择C/C++编译器,运行mbuild -setup 以后matlab会自动搜索系统所安装的C/C++编译器,然后让你给出选择,matlab自带了LCC编译器,只是能够利用VC的编译器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab生成exe应用程序
通常编写的matlab程序只能在装有matlab的机器上执行,但是没有安装matlab的怎么办呢?这个可以使用matlab的自带工具-Deploy Tool。
Matlab的Deploy Tools 可以方便的将matlab工程编译成所支持的类型,例如一般的Windows应用程序,Matlab for .NET/COM ,Matlab for Java,Matlab for Excel 等。
其原理就是先使用MCC 编译器根据你的m文件生成相应的c语言文件以及数据文件,然后在调用C/C++编译器编译成可执行文件或者控件库。
1、安装编译器。
可有多种选择,matlab自带了一个LCC,推荐使用VC++,我基于VS 2008实现。
2、设置编译器。
在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。
3、调用编译器。
此处使用MATLAB下的一个GUI平台deploytool下完全实现。
在命令窗口输入deploytool即可看到。
具体使用方法请Help。
当然,也可以输入mcc -m filaname,filaname为要转成exe的m文件;
注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;
在Matlab 2007a 中Deploy Tool其实是一个MCC的前端界面(用MCC的命令行参数一样可以完成编译工作)
下面是用Deploy Tool来编matlab工程。
首先创建prj工程,从菜单中定位到“New”-》“Deployment Project” 然后会提示选择类型
然后添加文件
接着你就可以编译了第一次编译会让你去选择C/C++编译器,运行mbuild -setup 之后matlab会自动搜索系统所安装的C/C++编译器,
然后让你给出选择,matlab自带了LCC编译器,不过可以使用VC的编译器。
选择好了之后你就可以编译了,编译之前你可以设置工程属性,例如通用设置:
可以指定生成的中间文件的路径,编译选项,等等,你还可以设置选择针对哪些工具箱进行扫描:
当然你还可以手动设置C/C++编译器路径,头文件、库文件目录,警告等级等不过想要你的程序在没有安装Matlab的机器上运行,还有一点要注意,就是Matlab编译出来的程序需要用到Matlab的一些包括但不限于数学、图形等动态链接库,这些是你的程序必要的运行时环境,你可以拷贝
(MatlabDIR)\ toolbox\\toolbox\compiler\deploy\win32\MCRRegCOMComponent.exe
到目标机器安装,然后就有了运行时环境,当然使用Deployment Tool工具可以设置自动打包这个运行时,具体在设置页勾选“Include MATLAB Comptent Runtime(MCR)”:
并且包含你需要用到的资源文件,图片,html等等。
然后就可以打包发布程序了。