‘壹’ matlab如何编译
一般需要用 function定义的子文件可执行,只有一个主文件,并将M文件放在一起即可……下面有个示例希望对你有帮助
‘贰’ matlab将GUI编译成exe文件,不想打包matlab运行库(运行库太大),又想在任何电脑上运行,有什么方法吗
将GUI编译成exe文件时,可以选择不打包matlab运行库,但编译好的exe文件要在任何电脑上运行是不可能的,必须在要运行的电脑上安装matlab运行库,下载地址如下,https://cn.mathworks.com/procts/compiler/mcr.html,选个适合该电脑系统的版本,下载速度还是很快的。
你也可以参考这个回答http://jingyan..com/article/19020a0a057462529d2842d6.html?qq-pf-to=pcqq.c2c
‘叁’ matlab循环很慢是因为每次都要编译循环体写成函数会不会快
matlab循环慢是因为本身运算速度没C快 语言本身决定的 循环一般写成矩阵或者向量的运算会快一些
‘肆’ matlab2009a用什么编译器
问题描述:系统为win7 64bits,软件为matlab2009a和VS2008,在matlab中输入命令行max -setup,找不到VS2008编译器。
解决方法:
1.下载Microsoft Visual C++ 2008 Express for MatLab,按里面的readme.txt执行操作
Place these three files in C:\Program Files\MATLAB\R2007a\bin\win64\mexopts:
msvc90freeengmatopts.bat
msvc90freematopts.bat
msvc90freematopts.stp
Replace these three files in C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin:
vcvars32.bat
vcvars64.bat
vcvarsx86_amd64.bat
2.修改msvc90freematopts.stp
The file msvc90freematopts.stp on line 51 contains a reference to 'v6.1' change this to 'v6.0a'
3.添加环境变量
The environment variable MSSdk needs to be changed to c:\Program Files\Microsoft SDKs\Windows\v6.0a
一般按这样操作后就可以通过max -setup选择编译器了,但是我在执行上述操作后,虽然matlab能够找到VS2008编译器,但是会有错误,提示为需要安装C++ 64bits compiler and tool 和SDK。其原因是在安装VS2008的时候,如果是按默认设置进行的话,是不会安装C++ 64bits compiler and tool,此时你需要重新安装VS2008,并按自定义安装,在C++选项下面选择 C++ 64bits compiler and tool,当安装完成后,一切就OK了。
‘伍’ matlab多个figure编译一个exe的效率高不高
效率不会因为多个UI变低,但是调用不同的UI确实会消耗时间,如果只是人工操作UI
应该不会有太大的影响。不同UI之间没有父子
句柄
关系
‘陆’ 如何将MATLAB程序编译成独立可执行的程序
一、生成独立可执行的程序(exe文件)步骤
1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于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
文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。
在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
在其它没有安装matlab的机器上运行exe文件前:
首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。
其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
如果没有,也可手动安装,添加的方法是:
右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。
最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。
问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:
消除运行MATLAB生成的exe程序的dos黑屏的办法
基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:
方法一: 在命令窗口输入:
cd(prefdir)
edit compopts.bat
在打开的文件最后添加以下语句:
A.VC环境下:
set
LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
B.LCC环境下:
set LINKFLAGS=%LINKFLAGS%
-subsystemwindows
C. Borland:
set LINKFLAGS=%LINKFLAGS% -aa
保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了
方法二:使用suppress工具:
下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppress.ini文件,用记事本打开,然后将
其中“Name=test.exe”中text.exe的改为你生成的exe文件名。将suppress.exe(有个关盘和显示器的图标),改后的
suppress.ini放到你生成的exe的同目录下。执行suppress.exe或者您自己生成的exe可以了。当然您可以自己修改
suppress.exe的名字,改为您自己想要的名字。
其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。
方法二的缺点就是要同时存在您生成的exe以及supress.exe,必须在同一目录下。
‘柒’ 怎样让MATLAB运行得更快
量x,y的欧氏距离计算如下:
不用for循环,而采用下面的代码
d = sqrt(sum(abs(x-y).^2));
矩阵X(m行n列)表示m个n维空间的数据点, X中每一个数据点与n维列向量y的欧氏距离:
d = sqrt(sum(abs(X - repmat(y, [m 1])).^2, 2));
d = sqrt(sum(abs(X - y(ones(m,1),:)).^2, 2));
其他的方法,如通过.* ./ 实现矩阵元素逐个计算。
向量化其实是一种空间换时间的方法,用得好其效率可能比C/C++还高。
现在MATLAB的解析速度很高,特别是它的JIT即时编译技术,对超大矩阵和
要求比较高的迭代运算防止滥用。用for循环时,循环次数多的放在内循环。
‘捌’ matlab2019非常卡,help指令要卡1分钟,是什么原因
新版本matlab需要设置一下,Preference->help->Installed locally ,应用后就OK了,可以从本地调用
‘玖’ matlab生成的exe执行都很慢么有什么办法可以提高效率换一个编译器
就是这么慢,木得办法。exe的运行速度与你源程序的运行速度也有一定关系,你提高源程序的运行速度,可以提高exe的运行速度