matlab 打开exe文件只有.exe文件吗

MATLAB .M文件编译成.EXE并在无MATLAB的电脑上运行的一个方法 - 博客频道 - CSDN.NET
davied9的专栏
分类:MATLAB
做了半年的GUI的毕设,说说GUI编译的一个方法吧
首先确保安装了MATLAB以及VS(只是一个方法,不是唯一的),我的是MATLAB(2010A)和MS VISUAL STUDIO 2010,需要三个主要步骤:
&1.然后做编译前的准备工作,MATLAB安装编译器:
%在MATLAB命令窗中输入
mbuild -setup
Please choose your compiler for building standalone MATLAB applications:&
Would you like mbuild to locate installed compilers [y]/n?
%本人的是n,然后出现的是
Select a compiler:
[1] Lcc-win32 C 2.4.1
[2] Microsoft Visual C++ 6.0
[3] Microsoft Visual C++ 2005 SP1
[4] Microsoft Visual C++ 2008 Express
[5] Microsoft Visual C++ 2008 SP1
%我选择的是5,当然,我的不是2008,还有后文
Your machine has a Microsoft Visual C++ 2008 SP1 compiler located at
D:\Program Files\Microsoft Visual Studio 9.0. Do you want to use this compiler [y]/n?
%依然是n,继续
Please enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio 9.0]
%这里方括号里的是默认的,估计是提示,我输入的是
C:\Program Files\Microsoft Visual Studio 10.0
Please verify your choices:
Compiler: Microsoft Visual C++ 2008 SP1&
Location: C:\Program Files\Microsoft Visual Studio 10.0
Are these correct [y]/n?
%这次是y了,
****************************************************************************
& Warning: Applications/components generated using Microsoft Visual Studio&&
&&&&&&&&&& 2008 require that the Microsoft Visual Studio 2008 run-time&&&&&&
&&&&&&&&&& libraries be available on the computer used for deployment.&&&&&&
&&&&&&&&&& To redistribute your applications/components, be sure that the&&&
&&&&&&&&&& deployment machine has these run-time libraries.&&&&&&&&&&&&&&&&&
****************************************************************************
Trying to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2010a\compopts.bat
From template:&&&&&&&&&&&&& D:\PROGRA~1\MATLAB\R2010a\bin\win32\mbuildopts\msvc90compp.bat
Done . . .
%说明已经成功安装了,至于能够编译正确,估计和VS2008到VS2010的项目的转换有点关系,还算我运气好吧
&2.编译器安装结束后,接下来的就是编译工作了,主要是编译.m文件,我的GUI程序就直接编译.fig文件对应的那个.m文件就好了。
%在命令窗口输入
mcc -m filename.m
%即完成了文件的编译,多说几句,尝试了多个GUI程序,以及多个.m文件的情况,只用编译主GUI程序,其他可以在无matlab的情况下正常调用,多个.m文件也是一样的,只用编译主程序即可
&3.编译完成,就可以在自己的电脑上面任意运行了不过现在还不能在别人的电脑上运行,纠结死了,于是进行了多次试验,在3台不同配置的电脑上测试了,需要的环境有三个,MATLAB运行环境(这个就不解释了),VS2010运行环境(我用的VS2010,至于其他版本找对应的就可以了),还需要一个就是.NET FRAMWORK 2.0
&MATLAB运行环境的安装程序在自己的MATLAB的目录下,2010A的目录为
D:\Program Files\MATLAB\R2010a\toolbox\compiler\deploy\win32
&给出的是绝对路径,根据自己的情况改吧,找到MCRInstaller.exe这个程序,就是她了。
(找不到的话,在MATLAB的COMMAN WINDOW里面输入mcrinstaller回车即可,只保证2012以后的版本能用,现在换版本了,这句是加的 - 。- )
&然后是Microsoft Visual C++ 2010 Redistributable Package,给一个下载地址吧,是迅雷的,不行的就去百度吧
&最后是Microsoft .NET Framework: 2.0
简体中文版:
x86多国语言版:
&只要在想要运行自己编译的程序的电脑上安装这三个环境,把自己编译好的程序和所有'自定义的'函数以及'自定义的'GUI程序等等拷到那台电脑上(自定义的GUI的.fig和.m文件都要拷,主要针对像errordlg和warndlg这种自带的GUI不需要拷来说的) 。
&另外,我的程序需要运行的时候那个CMD窗口,因为有些警告是通过CMD传达的,想要去除CMD的窗口也很方便,如果想了解更多的话,百度吧,给个我觉得写得很好的链接看看:
Matlab .M文件编译成可执行文件.exe& :&
&补充几句,这也是这篇文章写了以后2年左右了。参加过一次MATLAB的研讨会,咨询了一下这方面的问题,MATLAB很多算法都是用C写的,所以想实现脱离MATLAB运行环境的EXE,就需要你的代码里面只有用这些用C写的函数(具体是哪些我也不知道 - . - ),然后将MATLAB代码转换为C代码,在VS中编译即可。但如果你写的MATLAB的&代码中带有绘图、界面方面的东西,这样做就不行了,因为绘图这部分不是用C实现的。
&另外,本人在使用这个方法编译成为EXE时,写的是一个界面,仅仅将主界面编译成为了一个EXE,而自己写的其他函数任然保持着.m文件,放在同一个文件夹下的,这样在运行主界面的EXE时,仍然是可以调用这些.m文件的,最大的好处就是如果你需要修改这些.m文件实现的功能时,不需要重新编译。
排名:千里之外
(14)(10)(3)(1)(1)(3)(0)(0)小木虫 --- 600万学术达人喜爱的学术科研平台
&&查看话题
怎么样matlab调用exe文件,并输入
求助~~本人在matlab下调用了一个exe文件(C写的)
此exe文件运行是分步的(需要依照提示不停的输入数据,即提示-->输入数据-->回车,然后下一个提示-->输入数据-->回车)
我想把这整个步骤加入一个循环中多次运行,请问怎么样才能执行
打开exe-->在提示下输入x.txt-->在提示下输入y.txt(结束)
请各位高手指教下!
用system('**.exe')在提示输入的那个地方就停住等输入了。。。没办法自动输入x.txt回车。。。。
谢谢,试过了
和system,dos都一样的效果
到(提示输入:)的地方就停住等你输入了
有什么办法可以让他自己输入个f.txt进去呢?
matlab可以用感叹号(!)加executable文件名直接运行,
但是无法和程序互动,如果中间需要输入数据(像你这样的)
你需要拿到exe的源码,重新写main函数的逻辑,改成这样:
如果输入参数个数argc==1,那么运行不断提示用户输入数据;
如果输入参数个数argc>1,分情况解析参数内容argv,分割字符串得到输入参数文件名,这样main后面的处理直接读取文件内容使用即可.
然后在matlab中你可以!*.exe 1.txt 2.txt这样试试
谢谢啊~我在想能不能通过自己做一个脚本或者批处件来执行这个流程?
北京学而思教育科技有限公司 地址:北京市海淀区北三环甲18号中鼎大厦A座1层102室 电话:010-
浏览器进程
打开微信扫一扫
随时随地聊科研6946人阅读
MATLAB(18)
&&&&&& 有时候,用matlab做实验的时,在matlab执行的过程中,要启动.exe程序,当然肯定不能指望用手动方式来启动,那么matlab是如何做到的呢?
&&&&&&& 设C++程序为:
#include&iostream&
int main()
int a = 1;
int b = 2;
int c = a +
cout && c &&
&&&&&&&设生成的.exe文件为test.exe,且把该文件放在桌面上,现在用matlab来启动test.exe,matlab程序如下:
cmd = 'C:\Documents and Settings\Administrator\桌面\test.exe';
system(cmd);
&&&&&&&结果为: 3
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2779963次
积分:39723
积分:39723
排名:第86名
原创:1581篇
转载:128篇
评论:1660条
(6)(32)(52)(8)(10)(28)(56)(32)(26)(15)(42)(63)(38)(39)(75)(43)(4)(20)(33)(17)(11)(7)(48)(53)(51)(52)(35)(20)(53)(41)(35)(13)(32)(36)(7)(1)(47)(23)(26)(4)(13)(4)(19)(72)(13)(2)(14)(45)(32)(7)(3)(28)(53)(106)(68)

我要回帖

更多关于 matlab exe文件 的文章

 

随机推荐