MATLAB生成可执行文件exe总结

时间:2024.4.27

10、要将 用 Matlab 语 言 编 写 的函 数 文件 编 译成 可 独立 执 行的 *.exe 文 件

要将用 Matlab 语言编写的函数文件编译成可独立执行的*.exe 文件 (即可脱离 Matalab 环境的执行程序),首先要安装和配置好 Matlab Compiler,一般来说,在安装 Matlab 时就已经安装了相应版本的 Matlab Compiler。只是不同版本的 Matlab,其编译器的使用方法有一 定的差异,这一点要引起一定的注意。 在确定安装好 MatlabCompiler 后,还需要对 Compiler 进行适当的配置,方法是在 Matlab 命令窗口 输入:

Mbuild –setup

然后根据提示执行相应的操作,使用者可根据自己计算机中现有编 译器的情况选择合适的编译器,如 VC++ 6.0、VC++7.0、Bland C 的编 译器等,目前 Matlab 好象还不支持 VC++8.0(我计算机安装的就是 VC++20xx,Matlab 就无法识别)。当然,如果你的计算机里根本就没有 安装其他任何语言的编译器,也可选择 Matlab 自带的 Lcc 编译器, 其实这个编译器对大多数用户已经够用了(我就是选择的 Matlab 自带 的 Lcc 编译器)。 配置好编译器后,自然就是对自己编写的 M 文件进 行编译了。

将 M 文件编译为独立可执行文件的语法是:

>>mcc –m fun1.m fun2.m?..

其中 fun1 就是最后的可执行文件的名称。 另外,也可通过采用 命令开关-o 指定编译最终目标文件的名称,如 mcc –m main.m –o mrank_main,就是将编译后的文件指定为 mrank_main.exe。 编译后的 生成文件根据编译器的版本不同而不同。具体的可参阅相关资料。

如果要在没有安装 matlab 的计算机上执行编译后的程序

首先要将\MATLAB701\toolbox\compiler\deploy\win32 中

MCRinstaller.exe 安装到该计算机上(7.0 以前的版本是

mglinstaller.exe)。

其次是要将―MCRinstaller.exe 安装目录\runtime\win32‖这个 路径添加到该计算机的环境变量中,添加的方法是: 右击―我的电脑 ‖―属性‖―高级‖―环境变量‖―添加‖指定一个变量名,然后将上 述路径复制到里面就可以了。

第三步是将编译生成的相相关文件拷贝到同一目录下(当然其他目 录亦可)。

第四步是打开 MS-dos 操作窗口,进入到编译后的*.exe 程序所在 的目录,执行编译生成的*.exe 文件即可。

需要说明的一个问题:

如果你的程序还附带有图片(如 Version 上的图标)、Web 页面(如 help 文档),在编译的时候可能无法与 M 文件一起编译(因为我没有试 过,也没有看到有关这方面的介绍),这没有关系,先在计算机上执行 一次你编译后生成的独立可执行文件,这时在同一目录下会生成一个以

你编译后的程序名+_mcr 结尾的文件夹,这时,你只需要把与程序相关 的图标和 Web 页面拷贝到该文件夹中的 Matlabprogram 下面的一个子 目录(一般与用于编译的文件夹名相同)中即可。

其他的方法还有:(以下是网上搜索到的方法,没有试验过,有兴 趣的朋友可以试一试)

方法一:在 matlab 下的 workspace 里打 comtool,点 file- open 26 project 将我们先前建好的 comtest.cbl 工程文件打开, 再点 component--package component 就实现了打包,此时到

comtest\distrib 文件夹里看,生成的 comtest.exe 就是打包后的解 压程序,双击它会解压出一些文件,再点击解压出来的_install.bat 就可以实现安装

方法二:如何将 gui 生成 exe ?

已有 gui.m 文件和 gui.fig 文件

1 在 matlab 的 command 窗口中输入 mcc -B sgl GUI.m

2.将上步生成的文件包括*.m 文件和*.fig 文件一起考到待运 行的机器

此时仍需 matlab 所必需的动态连接库。

3. 将 <matlab path>/extern/lib/win32/mglinstallar.exel 拷贝到到待运行机器上

4.在机器上先运行 mglinstallar.exe, 然后选择解压目录, 将在指定目录下解压缩出 bin 和 toolbox 两子目录,其中在

bin\win32 目录下就是数学库和图形库脱离 MATLAB 运行所需的所有动 态连接库,共有 37 个。可以将这些.dll 考入 system32, 也可以直接 放在应用程序目录下。而 toolbox 目录则必须与应用程序同一目录。

5.大功告成。

matlab 生成独立可执行的程序

引用

灵梦捕手 的 matlab 生成独立可执行的程序

一、生成独立可执行的程序(exe 文件)步骤

1、安装编译器。可有多种选择,本机安装的是 microsoft visual c++ 6.0;

2、设置编译器。在 matlab 命令行输入 mbuild -setup,选择安装的 c 编译器;

3、调用编译器。输入 mcc -m filaname,filaname 为要转成 exe 的 m 文件;

在以前的版本中,用编译命令 mcc -B sglcpp filaname;自 20xx 的 版本后,

替换为 mcc -m filaname;

4、安装 MATLAB7\toolbox\compiler\deploy\win32 目录下的 MCRInstaller。

二、脱离 matlab 运行可执行程序

MCR 是由 matlab 的运行环境,占用不到 400M 的对于用不同 matlab 版本生成的 exe 文件,MCR 版本也会有不同,因此,在程序打包时, 最好将相应版本的 MCR 一起打包。MCR 环境的设置文件存放目录如 下:

\MATLAB\R20xxa\toolbox\compiler\deploy\win

文件名为 MCRInstaller.exe。可将其拷贝到自己的文件夹中。 在其它 机器上运行 exe 文件前,首先安装 matlab 的运行环境。在同一机器 上可以并存不同版本的 matlab 环境。 Note: 将 MCRInstaller.exe 拷贝到你文件所在文件夹里,用打包程序来打包,生成安装文件,设定 在解包过程中自动执行 MCRInstaller.exe,同时将可执行文件的图标 放在桌面。

11、 matlab GUI 程 序 转 换 成 exe 可 执 行 文 件

1.设置编译器:

在确定安装好 Matlab Compiler 后,还需要对 Compiler 进行适当的 配置,方法是在 Matlab 命令窗口输入: Mbuild –setup, 按提示选 择 matlab 自带编译器 LCC。

2.将脚本编译为可执行文件:

如项目文件包含:gui.m, gui.gif, fun1.m。 在此路径下命令行输 入:mcc –m gui.m,生 mccExcludedFiles.log,ReadMe.txt, gui.ctf,gui.prj,gui_main.c gui_mcc_component_data.c

gui.exe。其中:gui.ctf,gui.exe 为脱离 matlab 环境运行必需的文 件。

3.在未安装 matlab 的机器上运行可执行程序。

将 R2 20xxb\toolbox\compiler\deploy\win32 中的 MCRinstaller 安 装到该计算机上,将生成可执行程序脱离 matlab 运行所需的函数库。 将 2 中生成的 gui.ctf,gui.exe 拷贝到该计算机同一路径。运行 gui.exe 将生成 gui_mcr 文件夹,包含程序运行所需的库。至此完 成。

4.去除独立可执行程序运行时的“DOS 黑窗口”。

以上生成的 exe 程序运行时首先弹出一个 DOS 界面窗口,如果不需要 其输出数据和错误信息,可将其去除。

matlba 命令行输入:

cd(prefdir) edit compopts.bat

此时 compopts.bat 打开,在文件最后添加:

set LINKFLAGS=%LINKFLAGS% -subsystem windows

如果程序比较复杂,易出现异常,则不建议去除这个 dos 窗口以便调 试。 另外,这个办法是适用于你用的编译器为 LCC,如果是其他的, 那么所加语句有所不同

Microsoft Visual C/C++:

set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS

/ENTRY:mainCRTStartup

Borland:

set LINKFLAGS=%LINKFLAGS% -aa

5.遇到某些函数不能使用的问题。

我的程序中用到 vpa 函数,运行 gui.exe 出现:undefined method or function 'vpa' for input argument type of 'double'错误提 示。而 gui.m 脚本在 matlab 环境可以运行。

原因:百度搜到的信息为:matlab 不支持符号工具箱的编译。只好避 开使用此函数。

12、gui 生成独立的应用程序的发布问题

―将 MCRInstaller.exe 文件、file.ctf 文件和 file.exe 文件打 包,粘贴至目标机器上后,解压,运行 MCRInstaller.exe,将 file.exe 和 file.ctf 复制到应用目录下,添加目录

<mcr_root>\runtime\win32 到用户系统路径(<mcr_root>为 MCR 安装 路径。‖)

1)这就话中―将 file.exe 和 file.ctf 复制到应用目录下‖是只哪个 应用目录;

2)―添加目录<mcr_root>\runtime\win32 到用户系统路径

(<mcr_root>

为 MCR 安装路径。)‖怎样添加目标到用户系统路径。

问题 1:.exe 和 ctf 在同一个目录就可以,就是只要在同一个文件夹 就行的。

问题 2:用户系统路径的添加是在环境变量里,我的电脑——>属性— —>高级——>环境变量,添加即可。


第二篇:matlab常用文件操作 总结


若不能运行,请注意标点符号是否为英文半角和拼写,如果功能错误请使用help mtf 格式等图像读取: imread

pic1=imread('filename.tif',1)

pic1=imread('filename.tif',10)

写图像文件: imwrite

文件名必须包括指明格式的扩展名。也可以增加第三个参数,显式指明文件的格式 imwrite(f, 'filename')

获取图像信息: imfinfo

pic0info=imfinfo('sedat0.tif');

新建文件夹 mkdir

mkdir('temp')

mkdir('temp\folder0')

创建子目录并直接向文件夹写文件:

先用 mkdir(dirName) 来创建文件夹

再用imwrite(I,'dirName\图象.jpg');

文件夹跳转并设为当前目录: cd

cd('temp')

cd('temp\folder0')

cd temp

cd temp\folder0

cd .. 跳往上级目录

str=cd 获取当前完整目录

获取上级目录和获取文件名(去掉扩展名的方法)

Filepath='c:a\b\c'

Pathpos=strfind(Filepath,'\')

Filepath1= Filepath(1: Pathpos(end)-1)

filename='abc.txt'

namepos=strfind(filename,'.')

filename1=filename(1:namepos(end)-1)

使用文件夹对话框

mydir=uigetdir('c:','选择一个目录');

path=uigetdir

filelist=dir(fullfile(path,'*.tif'));

使用文件夹对话框

[picname,picpath]=uigetfile('*.tif','selecttiffile');

遍历文件夹内所有文件dir(包括文件和文件夹,每个文件的信息,自己的信息等) file=dir

遍历文件夹内特定格式文件

files = dir('*.tif');

path=uigetdir

t = cd(path);% t为跳转前的目录,

% do something

allnames = struct2cell(dir); % dos命令dir列出所有的文件,用struct2cell转换为元胞数组

cd(t)

保存和加载计算数据: save load

文件读写

fid=fopen(文件名,‘打开方式’)

‘r’:只读方式打开文件(默认的方式),该文件必须已存在。

‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。

‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。

‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。 ‘a’:在打开的文件末端添加数据。文件不存在则创建。

‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。

sta=fclose(fid)

该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。

如果要关闭所有已打开的文件用fclose(‘all’)。

读写操作

fwrite

fread

fprintf(fid,format,A)

fscanf

写文件比较常用,fprintf和C语言基本上一模一样的用法,matlab中数据的保存和读取一般用save和load,超级方便简单

文件删除,复制和移动delete,copyfile,movefile,亲别把自己的重要文件拿来做实验哦。 新建文件夹和删除文件夹,mkdir,rmdir

更多相关推荐:
上海市高级人民法院:关于涉民生案件执行的若干意见(试行)

上海市高级人民法院关于涉民生案件执行的若干意见试行上海市高级人民法院关于印发上海市高级人民法院关于涉民生案件执行的若干意见试行的通知沪高法执20xx21号本市各法院执行局庭为切实维护当事人合法权益使涉及当事人切...

最高人民法院公布五起打击拒不执行涉民生案件典型案例

最高人民法院公布五起打击拒不执行涉民生案件典型案例法学教学案例网为践行党的群众路线切实保障和改善民生最高人民法院自20xx年年初以来在全国法院组织开展了涉民生案件专项集中执行活动重点清理追索劳动报酬赡养费扶养费...

最高法公布五起打击拒不执行涉民生案件典型案例(20xx年2月14日)

最高法公布五起打击拒不执行涉民生案件典型案例20xx年2月14日案例1陈联会拒不支付劳动报酬案被执行人法定代表人拖欠73名公司职工14万余元工资后逃匿被依法追究拒不支付劳动报酬罪庭审期间自觉履行了法定义务执行法...

银行内控和案件防范制度执行的总结[1]

银行内控和案件防范制度执行的总结根据省行开展合规执行年的主题教育活动的精神在分行相关部门的宣传组织和动员下我支行认真深入地参加了这次全行开展的遵章整改学习活动通过这次主题教育活动进一步提高了全行人员的风险防范意...

银行案件防控工作报告

抓落实控风险全面提升风险管理水平年在银监分局的大力支持和帮助下行紧紧围绕省局和分局案防安保工作总体思路狠抓制度落实力促问题整改着力加强案件风险防控体系的建设始终坚持把案件防控工作放在首位案防工作取得阶段成效实现...

XX银行案件防控工作总结

银行案件防控工作总结XX银监分局我行结合各部门及各条线工作重点对业务风险及案件防控工作进行了持续学习与研究认真梳理案件易发业务领域和风险管控薄弱环节变被动应对为主动防控完善制度建设加强全流程管理持续开展员工教育...

20xx年银行案件防控工作总结

银行案件防控工作总结根据总行XXXXX开展案防攻坚年活动实施方案通知要求为进一步加强案件防控工作结合支行实际认真组织全员对方案进行了学习通过学习全员风险意识得到进一步强化使全员牢固树立起了防范风险和案件的第一道...

银行案件防控自我评估报告

银行案件防控自我评估报告河套农商银行关于案件防控自我评估报告按照河套农商银行案件防控工作自我评估实施细则巴农商银发20xx58号要求我支行高度重视认真组织学习按照河套农商银行案件防控工作自我评估实施细则中各项评...

银行案件防控学习心得体会-ZY

银行案件防控学习心得体会近期我行开展了银行内控案防教育月活动通过学习并结合我平时在工作中实际情况对案件防控意识有了更深一层的认识现就此次学习活动的心得总结出几点体会案件的发生无论是对国家和社会还是对单位和个人都...

银行案件防控工作总结及计划

根据总行关于印发lt中国建设银行案件防控及整改方案gt的通知和分行建设银行湖北省分行案件防控及整改方案精神为进一步加强案件防控工作结合支行实际认真组织全员对方案进行了学习通过学习全员风险意识得到进一步强化使全员...

银行案件防控学习心得体会[1]

20xx年案件防控治理教育学习心得高良信用社近年来各种金融案件频频发生发案率仍然高居不下形势严峻纵观金融案件的发生尽管形式各异但追究原因归结为一点主要是由于各项内控制度未履行落实到位造成的主要反映在以下问题一防...

大学生交易平台创业计划书执行总结

第一章执行总结本团队由八人组成,推出的产品名为大学生交易平台,是以当代大学生为用户群体,以满足大学生们的交易、求知、交友等各方面生活需求为主要目标,以广为大学生群体接受和欢迎的手机APP形式和为大众普遍接受和习…

涉民生案件执行总结(3篇)