matlab+gui+生成独立可执行的程序

上传人:206****923 文档编号:90602753 上传时间:2019-06-13 格式:DOCX 页数:7 大小:27.63KB
返回 下载 相关 举报
matlab+gui+生成独立可执行的程序_第1页
第1页 / 共7页
matlab+gui+生成独立可执行的程序_第2页
第2页 / 共7页
matlab+gui+生成独立可执行的程序_第3页
第3页 / 共7页
matlab+gui+生成独立可执行的程序_第4页
第4页 / 共7页
matlab+gui+生成独立可执行的程序_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《matlab+gui+生成独立可执行的程序》由会员分享,可在线阅读,更多相关《matlab+gui+生成独立可执行的程序(7页珍藏版)》请在金锄头文库上搜索。

1、要将用Matlab语言编写的函数文件编译成可独立执行的*.exe文件(即可脱离Matalab环境的执行程序),首先要安装和配置好Matlab Compiler,一般来说,在安装Matlab时就已经安装了相应版本的Matlab Compiler。只是不同版本的Matlab,其编译器的使用方法有一定的差异,这一点要引起一定的注意。在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:Mbuild setup然后根据提示执行相应的操作,使用者可根据自己计算机中现有编译器的情况选择合适的编译器,如VC+ 6.0、VC+7.0、Bland

2、 C的编译器等,目前Matlab好象还不支持VC+8.0(我计算机安装的就是VC+2005,Matlab就无法识别)。当然,如果你的计算机里根本就没有安装其他任何语言的编译器,也可选择Matlab自带的Lcc编译器,其实这个编译器对大多数用户已经够用了(我就是选择的Matlab自带的Lcc编译器)。配置好编译器后,自然就是对自己编写的M文件进行编译了。将M文件编译为独立可执行文件的语法是:mcc m fun1.m fun2.m.其中fun1就是最后的可执行文件的名称。另外,也可通过采用命令开关-o指定编译最终目标文件的名称,如 mcc m main.m o mrank_main,就是将编译后的

3、文件指定为mrank_main.exe。编译后的生成文件根据编译器的版本不同而不同。具体的可参阅相关资料。如果要在没有安装matlab的计算机上执行编译后的程序,首先要将MATLAB701toolboxcompilerdeploywin32中的MCRinstaller.exe安装到该计算机上(7.0以前的版本是mglinstaller.exe)。其次是要将“MCRinstaller.exe安装目录runtimewin32”这个路径添加到该计算机的环境变量中,添加的方法是:右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。第三步是将编译生成的相

4、相关文件拷贝到同一目录下(当然其他目录亦可)。第四步是打开MS-dos操作窗口,进入到编译后的*.exe程序所在的目录,执行编译生成的*.exe文件即可。需要说明的一个问题:如果你的程序还附带有图片(如Version上的图标)、Web页面(如help文档),在编译的时候可能无法与M文件一起编译(因为我没有试过,也没有看到有关这方面的介绍),这没有关系,先在计算机上执行一次你编译后生成的独立可执行文件,这时在同一目录下会生成一个以你编译后的程序名+_mcr结尾的文件夹,这时,你只需要把与程序相关的图标和Web页面拷贝到该文件夹中的Matlabprogram下面的一个子目录(一般与用于编译的文件夹

5、名相同)中即可。其他的方法还有:(以下是网上搜索到的方法,没有试验过,有兴趣的朋友可以试一试)方法一:在matlab下的workspace里打comtool,点file-open project将我们先前建好的comtest.cbl工程文件打开,再点component-package component就实现了打包,此时到comtestdistrib文件夹里看,生成的comtest.exe就是打包后的解压程序,双击它会解压出一些文件,再点击解压出来的_install.bat就可以实现安装 方法二:如何将gui生成exe ?已有gui.m文件和gui.fig文件1 在matlab的command

6、窗口中输入 mcc -B sgl GUI.m 2.将上步生成的文件包括*.m 文件和*.fig文件一起考到待运行的机器 此时仍需matlab所必需的动态连接库。3. 将 /extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两子目录,其中在binwin32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。而toolbox目录则必须与应用程序同一目

7、录。5.大功告成。 方法三:运行mcc -B sgl GUI.m 生成exe文件,把GUI.exe文件和GUI.ctf文件拷贝到目标电脑上,然后在目标电脑上安装 MCRInstaller.exe ,安装完以后,我点击GUI.exe,它显示:this application has requested the Runtime to terminate it in an unusual way。这个可能是哪里出错了呢?Solution:The segmentation violation can be caused due to a corruption in either the profile

8、 of the current user or by corrupted Windows libraries. In order to determine which is the cause, try logging in as a different username and run MATLAB. If you are able to successfully launch MATLAB under a different username:1. Log onto the machine, as the user that is receiving the error.2. On you

9、r desktop, click on Start Run3. Type regedit in the Open text field and click OK, this will bring up the Registry Editor4. In the Registry Editor expand the following folders: HKEY_CURRENT_USER Software MathWorks Matlab5. Under the MATLAB key, find the folder having the same name as the version numb

10、er of the MATLAB that is crashing; and delete it. This Registry key will be regenerated the next time MATLAB is started. 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 l

11、aunch MATLAB successfully. If MATLAB crashes regardless of the user who is logged in, the crash may be caused by corrupted system libraries. For Windows NT, 2000, or XP, some customers have found that reinstalling Windows Service Packs have resolved the issue这个是启动6.5时出类似错误的解决方法,你试试7.0可否成功吧司的软件系统中包含几

12、个数学模型,使用matlab开发的。每次运行程序,都要在客户机上安装matlab,非常麻烦。不只是安装过程麻烦,占用1个多G的空间,运行的matlab服务也会占用150M内存,资源消耗太厉害了。一直在考虑是不是可以脱离matlab运行,以前试过matcom,但函数太少,只好放弃了。现在使用的方式是将matlab文件通过命令生成动态链接库dll,在VC程序中调用。今天在水木社区BBS上查找VC和MATLAB混合编程内存泄漏的帖子,无意中发现了讲解VC和MATLABR14混合编程新变化的文章。里面讲到了可以脱离matlab独立运行执行程序,于是赶紧上网查了一下资料。直接在客户机上安装$MATLAB

13、toolboxcompilerdeploywin32目录下的MCRInstaller.exe程序(83M),就可以了。或者通过matlab命令生成一个MCRInstaller.zip文件,解压缩到客户机上,并将动态链接库目录添加到PATH环境变量中。相比之下还是运行MCRInstaller.exe省事一些,虽然比MCRInstaller.zip要大一点。下午试了一下果真可以,以后不用为了测试程序而专门寻找安装了matlab的机器了下面以一个线性方程组的求解过程为例,介绍通过Matcom实现VC对Matlab程序的调用,运行环境:Win2000、Matlab6.1、Matcom4.5、Visua

14、l C+6.0(1)Matlab运行环境中编写程序equation.m,其代码如下:%equation 求解线性方程组的解%线性方程组形如:A*X = Bfunction X = equation(A, B)X = AB; (2)这里以一个简单的控制台程序为例,其它程序基本相同。在VC环境中建立一个名为Test的Win32 Console Application工程。(3)点击Visual Matcom工具栏上的m+图标,选择保存过的Matlab文件equation.m进行转化。如果看到的转化信息提示没有错误就可以观察到此时在FileView标签中多了m-files,C+files creat

15、ed from m-files,Matrix等文件。并且该工程目录下增加了equation.h,equation.cpp,equation.mak,equation.r等的4个文件。这时会在VC中出现一个转换完毕的文件,文件中如果报告有错误就要考虑是否程序有问题,可以双击C+files文件夹下的equation.m进行修改,再重新转化直到没有错误报告为止。(4)在Test工程下建立一个文件test.cpp调用转化的Matlab函数,代码为:#include stdio.h #include matlib.h /提供转化后C+代码中使用的数据类型,函/数原型及常数#include equation.h void main()/*解线性方程组:X = */initM(MATCOM_VERSION); /初始化matlib库Mm a,b,x; /使用矩阵类Mm构造矩阵a,b,x.a = (BR(1),2,3,semi,4,5,6,semi,7,8,1);/给矩阵a赋值,BR是MatrixLIB

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号