MATLAB程序如何实现脱离自身运行?
<P>请问具体怎么做才可以生成独立执行的exe文件。<BR>多谢!<BR></P> <P>同问<BR>小弟是做自组织映射(SOM)神经网络的,这几天弄毕业设计在这就卡住了<BR>通过 mcc -m命令生成的EXE文件在安装MCRINSTALL之后还是运行不出来 ,好象是说 NEWSOM 没定义 应该怎么解决呀?哪为大虾知道帮帮忙 ,谢谢了</P> 试试用matcom 在建立好函数m文件(不能是脚本m文件)后,用mcc命令将其转换为C++代码,命令行参数如下(假定m文件为test.m):mcc -t -L Cpp test.m
然后继续生成动态链接库函数:
mcc -t -W lib:test2 -T link:lib test.m
是不是这样做就可以完全脱离MATLAB,在别的机器是运行?
是不是之前要运行 mex-setup,装编译器啊?
[ 本帖最后由 ChaChing 于 2010-5-4 21:36 编辑 ] 用mcc,也可以使用comtool.该网站有很多相关信息,自己查吧!
回复:(GRF-KYO)是不是之前要运行 mex-setup,装编译...
mbuild -setup对于matlab6.5可以用下面的方法实现
先将\extern\lib\win32\ 下的mglinstaller.exe 解压缩,会得到mglarchive.exe, 再将mglarchive.exe 解压缩, 在生成的目录bin\win32\下就是程序独立运行所需要的动态链接库文件了。将这些动态链接库文件拷到你的程序所在的目录下就可以了。
7.0我也不清楚
[ 本帖最后由 ChaChing 于 2010-5-4 22:52 编辑 ] 按照happy所说的是不是讲我的matlab程序和那些动态链接库文件拷到同一目录下就可以在一台没有安装matlab的电脑上运行 该段程序了呢<BR>可我试验了 运行不了呀<BR>请指点
回复:(yu1983619)按照happy所说的是不是讲我的matl...
这样应该就可以了啊,怎么不行呢?有什么出错提示吗?[ 本帖最后由 ChaChing 于 2010-5-4 22:55 编辑 ] 我按照happy所说,但不好用呀,不是按我这么理解的么,将我所编制的matlab程序 与动态链接库文件安装到同一目录下,就可以在一台没有安装 matlab的电脑上运行我的程序么
对于matlab6.5可以用下面的方法实现
先将\extern\lib\win32\ 下的mglinstaller.exe 解压缩,会得到mglarchive.exe, 再将mglarchive.exe 解压缩, 在生成的目录bin\win32\下就是程序独立运行所需要的动态链接库文件了。将这些动态链接库文件拷到你的程序所在的目录下就可以了。
7.0我也不清楚
没有什么错误提示,我就是把我的程序和那些动态链接文件拷到同一文件夹里,然后粘贴到另一台没有安装 matlab的电脑上,但打开时让我选择打开方式,那不就是打不开么,或者应该用什么打开方式我不知道么,请指点
请大家帮看下我的动态链接库文件有什么不对么,为什么运行不了呢,按 happy所说的方法
[ 本帖最后由 ChaChing 于 2010-5-4 22:59 编辑 ] 不知这个对大家是否有帮助:
http://forum.vibunion.com/forum/viewthread.php?tid=13746
[ 本帖最后由 eight 于 2007-2-2 23:37 编辑 ]
回复:(GRF-KYO)MATLAB程序如何实现脱离自身运行?
我按照happy所说方法将生成的动态链接库文件拷到程序所在目录,在把装有动态链接库和程序的文件夹粘贴到另一台没有安装matlab的电脑上,但是不好用,请大家帮看看我的动态链接库文件有什么错误么,请高手指点,对我来说很重要。先谢了。 <P>能帮我把这个程序弄成可以在未装MATLAB机器上独立执行吗?<BR>最好能把搞的过程也说说。。便于我们这些鸟儿理解。。。<BR><BR>function exm1153_1(flag) <BR>if nargin<1;flag='startup';end %允许在无输入宗量形式下调用该函数 <2> <BR>if ~ischar(flag);error('flag must be character ''startup''.');end <BR>switch flag %切换控制 <4> <BR>case 'startup' % <5> <BR>clf reset % <6> <BR>set(gcf,'unit','normalized','position',); <BR>set(gcf,'defaultuicontrolunits','normalized'); <BR>set(gcf,'defaultuicontrolfontsize',11); <BR>set(gcf,'defaultuicontrolfontname','隶书'); <BR>set(gcf,'defaultuicontrolhorizontal','left'); <BR>set(gcf,'menubar','none'); %删除图形窗工具条 <BR>str='通过多行指令绘图的交互界面'; <BR>set(gcf,'name',str,'numbertitle','off'); %书写图形窗名 <BR>h_axes=axes('position',,'visible','off'); <BR>uicontrol(gcf,'Style','text',... %制作静态文本框 <BR>'position',,... <BR>'String','绘图指令输入框'); <BR>hedit=uicontrol(gcf,'Style','edit',... %制作可编辑文本框 <19> <BR>'position',,... % <20> <BR>'Max',2); %取2,使Max-Min>1,而允许多行输入 <21> <BR>hpop=uicontrol(gcf,'style','popup',... %制作弹出菜单 <22> <BR>'position',,... % <23> <BR>'string','spring|summer|autumn|winter');%设置弹出框中选项名 <24> <BR>hlist=uicontrol(gcf,'Style','list',... %制作列表框 <25> <BR>'position',,... % <26> <BR>'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名 <27> <BR>'Max',2); %取2,使Max-Min>1,而允许多项选择 <28> <BR>hpush=uicontrol(gcf,'Style','push',... %制作与列表框配用的按键 <29> <BR>'position',,'string','Apply'); <BR>set(hedit,'callback','exm1153_1(''set'')'); %编辑框输入引起回调 <31> <BR>set(hpop,'callback','exm1153_1(''set'')'); %弹出框选择引起回调 <32> <BR>set(hpush,'callback','exm1153_1(''set'')'); %按键引起的回调 <33> <BR>set(gcf,'UserData',); %向'UserData'存放图柄 <34> <BR>case 'set' %以下是回调函数 <35> <BR>H=get(gcf,'UserData'); %从'UserData'获取图柄 <36> <BR>ct=get(H(1),'string'); %获得输入的字符串函数 <37> <BR>vpop=get(H(2),'value'); %获得选项的位置标识 <38> <BR>vlist=get(H(3),'value'); %获得选项位置向量 <39> <BR>if ~isempty(ct) ;<BR>eval(ct');%运行从编辑文本框送入的指令 <BR>popstr={'spring','summer','autumn','winter'}; %弹出框色图矩阵 <BR>liststr={'grid on','box on','hidden off','axis off'};%列表框选项内容 <BR>invstr={'grid off','box off','hidden on','axis on'};%列表框的逆指令 <BR>colormap(eval(popstr{vpop})) %采用弹出框所选色图 <BR>vv=zeros(1,4);vv(vlist)=1; <BR>for k=1:4 <BR>if vv(k);eval(liststr{k});else eval(invstr{k});end %按列表选项影响图形 <BR>end <BR>end % <50> <BR>end <BR><BR>似乎长了点。。</P> <P>还有看了一些书上所说的把路径添加到系统目录变量(PATH)中是怎么理解啊?<BR>比如说我的程序放在E:\test这个目录中,用mcc编译后生成的东西也都放里边~<BR>是不是就是说把生成的所有文件都放到~用mglinstaller.exe生成的那两个文件加中的bin\Win32中,再把这个路径粘贴到PATH值中?那这样程序可以在未装MATLAB的机器上执行吗?</P> <P>还是请前辈们帮我看看我这样做的对不对:<BR>版本 MATLAB6.5 默认的安装路径<BR>程序:<BR>function shili01<BR>h0=figure('toolbar','none',...<BR> 'position',,...<BR> 'name','test');<BR>x=-pi:0.05:pi;<BR>y=sin(x);<BR>plot(x,y);<BR>xlabel('x');<BR>ylabel('y');<BR>title('SIN()函数曲线');<BR>grid on<BR>先运行mbuild -setup <BR>选择VC6.0<BR>然后用mcc -B sglcpp shili01 编译成C++的可执行文件<BR>在把在目录中生成的文件全部拷贝到 由 c:\matlab6p5\extern\lib\win32\mglinstaller.exe生成的bin\win32中。。<BR>再把win32这个文件夹拷贝到一台未安装MATLAB的电脑上。<BR>要想执行文件~只要双击文件夹里的shili01.exe文件就行了? <BR>如果是的话,为什么我的执行不了。也就是一下子弹出一个DOS界面就又自动关了。<BR></P> 要在目的机子上安装一个MCRinstaller.exe.这个文件在matlab 的toolbox里可以找到
页:
[1]
2