首先说明一点,你的程序不是死循环。另外一点,matlab擅长的是矩阵而不是循环语句。最后一点,因为你的循环次数实在太多,本来读图就要一点时间,加之你的103138约等于一万次的循环,必然让你觉得它陷入了死循环,你放一天一夜也许结果就出来了
一、生成独立可执行的程序(exe文件)步骤
1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++60,我基于VS 2003实现。
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;
4、安装<matlab
path>\toolbox\compiler\deploy\win32目录下的MCRInstaller。
二、脱离matlab运行可执行程序
MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:
<matlab path>
\toolbox\compiler\deploy\win32
文件名为MCRInstallerexe。可将其拷贝到自己的文件夹中,(70以前的版本是mglinstallerexe)。
在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
在其它没有安装matlab的机器上运行exe文件前:
首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。
其次是要将“MCRinstallerexe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
如果没有,也可手动安装,添加的方法是:
右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
注:在安装过程中会d出让安装MicrosoftNETFramework可以不用安装。
最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。
问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:
消除运行MATLAB生成的exe程序的dos黑屏的办法
基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:
方法一: 在命令窗口输入:
cd(prefdir)
edit compoptsbat
在打开的文件最后添加以下语句:
AVC环境下:
set
LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
BLCC环境下:
set LINKFLAGS=%LINKFLAGS%
-subsystemwindows
C Borland:
set LINKFLAGS=%LINKFLAGS% -aa
保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了
方法二:使用suppress工具:
下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppressini文件,用记事本打开,然后将
其中“Name=testexe”中textexe的改为你生成的exe文件名。将suppressexe(有个关盘和显示器的图标),改后的
suppressini放到你生成的exe的同目录下。执行suppressexe或者您自己生成的exe可以了。当然您可以自己修改
suppressexe的名字,改为您自己想要的名字。
其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。
方法二的缺点就是要同时存在您生成的exe以及supressexe,必须在同一目录下。
楼主其实代码没有什么问题,知识在最后450000的值设置太大了,所以超出范围。但是最后实现的效果好像有点不太符合,比如实现童声的时候,出来的是老人的声音?
这个程序运行肯定是没反应的
这是一个函数脚本
你要用调用函数的方式,
function
I=trapezia(a,b,eps)函数中有三个参数
必须个a
b
eps
赋值
比方说:我让
a=8
b=9
esp=0001
然后我再命令窗口输入命令:result=trapezia(8,9,001)
回车
(当然你前提是这个函数文件在matlab当前路径)
以上就是关于求救!!一个MATLAB的程序 一直死循环全部的内容,包括:求救!!一个MATLAB的程序 一直死循环、如何将MATLAB程序编译成独立可执行的程序、关于matlab实现变声器的程序问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)