matlab gui界面设计应用时在编辑完就运行无错误,关闭后再直接运行就显示出错了

查看: 1444|回复: 3
matlab gui生成exe文件后执行报错
本帖最后由 bluestyle 于
21:36 编辑
& &最近在做一个matlab gui 程序,是用时间序列法预测数据的,有一个m文件一个fig文件,在matlab中运行没有问题,但是生成exe文件后,可执行文件可以运行,但是会在DOS页面上报错,算法部分不能实现(就是不能返回预测值),m文件中主要用到armax函数等。
我的qq: 欢迎讨论!
算法部分主要代码如下:
function sjxlxiugai(wenjianlujing)
A=xlsread(wenjianlujing,'sheet1','A1:A720'); %用于ARIMA建模的彭水电站3月1日-3月30日每小时的入库流量数据a=diff(A);
%计算原始序列的一阶差分%%模型的建立
X1=iddata(a); %将a转化为matlab接受的格式
a1=[a;zeros(24,1)];
x1=iddata(a1);test = [];
for p = 1:10 %自回归对应偏自相关函数(PACF)
for q = 1:10 %移动平均对应自相关函数(ACF)
m=armax(X1,[p,q]); %利用不同的p、q建立arma模型
AIC = aic(m); %求得建立的arma模型的AIC值
test = [p q AIC]; %求得所有p、q组合的AIC值
endendfor k = 1:size(test,1)
if test(k,3) == min(test(:,3)) %选择AIC值最小对应的p、q值
p_test = test(k,1);
q_test = test(k,2);
m1 = armax(X1,[p_test q_test]) ;
%用AIC最小对应的p,q建立ARMA模型%%模型的预测与分析
p=predict(m1,x1,1);
p = get(p,'outputData'); %将iddata的数据类型转换为double类型的数据%差分还原
y1=[A;zeros(24,1)];y=zeros(24,1);
for i=721:744
y1(i)= p(i-1)+y1(i-1);
y(i-720)=y1(i);end
%figure(1)
%matlab中绘出y的图像%plot(y,'-*b')
%xlabel('时间/1h');
%ylabel('入库流量/m3/s');
%输出未来一天每小时的入库流量
xlswrite('C:\Documents and Settings\Administrator\桌面\预测结果.xls',y,'时间序列法预测结果');
& & & & & & & & & & & & & & & &
报错页面截图:
your 1st figure is not readable
have you tried follow the instruction of 2nd figure AT ALL ?&&
oopmatlab 发表于
your 1st figure is not readable
have you tried follow the instruction of 2nd figure AT ALL ?
第二个图主要是说armax函数递归数超过限定值,我按照建议增大了限定值,运行结果是依然报错,说明算法程序好像就没有跳出来似的。。。但是在没有生成exe文件前程序调试运行时没有任何问题的,命令窗口无报错,递归也没有问题。
另外,算法程序是单独一个m文件(sjxlxiugai.m)里面放的,具体代码如一楼所示。在figure中调用算法程序的代码为:
function pushbutton2_Callback(hObject, eventdata, handles)& && && && && &&&%开始预测
file=handles. %此处file为已知 参数
sjxlxiugai(file);&&
msgbox('预测已经完成,已生成*.xls数据文件!','预测完成','help');
目前我还没有解决这个问题。。。初步怀疑出错可能在
1、exe生成
我生成exe的时候只加载了fig文件对应的m文件,其实程序用到了很多matlab自带的m文件,在生成exe文件的时候该如何取舍?
2、函数调用上没有留出口
armax不支持转换成编译,现有的神经网络工具箱等函数不支持编译。
站长推荐 /1
Powered byMATLAB_GUI设计-专题讲稿-王正盛
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MATLAB_GUI设计-专题讲稿-王正盛
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口精通MATLAB GUI设计(第3版) _正版电子书在线阅读_百度阅读
精通MATLAB GUI设计(第3版)
支持以下平台(点击下载客户端)
畅销飙升榜
精通MATLAB GUI设计(第3版)
亚马逊评分:
您也可能感兴趣
本书在第2版的基础上,结合高校MATLAB应用教学和工程实际应用的需要,从实用角度出发,循序渐进地讲述MATLAB GUI设计,并通过大量的设计实例和典型应用实例,帮助读者掌握从基本的数据可视化到高级的交互式图形界面设计技术。全书分设计基础、设计提高和设计实例三篇,逐步、系统地展开。设计基础篇介绍MATLAB及GUI编程概述,二维、三维绘图;设计提高篇介绍MATLAB图形的颜色、光影和透明处理,动画设计,图像显示技术,图形的打印和导出,句柄图形对象,GUI的组成与结构,GUI基础及高级设计;设计实例篇介绍GUI设计在高等数学、大学物理和电工学中的应用。
本书从教学和工程实践的需求出发,通过大量的设计实例和典型应用来循序渐进地介绍MATLAB GUI设计,帮助读者掌握GUI设计的技巧,提高读者的设计能力。
王正林,男,毕业于北京科技大学,自动化工学博士,具有多年使用MATLAB的丰富经验,出版十多部关于MATLAB的图书。
上篇设计基础篇 第1章MATLAB及GUI编程概述
1.1MATLAB的特点
1.2MATLAB的主要组成部分
1.3MATLAB的帮助系统
1.4GUI编程概述
1.4.1GUI基本概念
1.4.2GUI层次结构
1.4.3利用GUIDE创建GUI
1.4.4利用编程创建GUI
第2章MATLAB二维绘图
2.17步绘图法
2.2玩转两个绘图命令
2.2.1低级命令line
2.2.2高级命令plot
2.3图的修饰美化
2.3.1调调坐标轴
2.3.2玩玩网格线
2.3.3给坐标轴贴个标签
2.3.4放置图标题
2.3.5图中加点文字
2.3.6图例和颜色条
2.3.7用自带工具标注
2.4填充并着色
2.5多图绘于一窗口
2.5.1图形叠印法
2.5.2子图绘制法
2.6换个坐标系绘图
2.6.1极坐标图
2.6.2对数/半对数坐标图
2.7绘制特殊的二维图形
2.7.1概率分布图
2.7.2柱状图和面积图
2.7.3饼形图
2.7.4离散数据绘图
2.7.5等高线图 2.7.6向量图 2.8函数绘图 2.9在工作空间直接绘图 2.10手工绘图 2.11小结 第3章MATALB三维绘图
3.1三维折线及曲线
3.1.1基本绘图命令
3.1.2图形标注 3.2三维网格曲面 3.2.1栅格数据点的产生
3.2.2网格曲面的绘制命令
3.2.3隐藏线的显示和关闭 3.3三维阴影曲面 3.3.1阴影曲面绘制命令 3.3.2带有等高线的阴影曲面绘制 3.3.3具有光照效果的阴影曲面绘制 3.4三维图形的调控 3.4.1设置视角位置 3.4.2设置坐标轴 3.5特殊三维图形 3.5.1直方图 3.5.2圆柱体图 3.5.3饼形图 3.5.4球面图 3.5.5三维等高线 3.5.6三维离散序列图 3.5.7简易函数绘图 3.6小结 中篇设计提高篇 第4章MATLAB图形的颜色、光影和透明处理 4.1图形可视化技术 4.1.1基本概念 4.1.2三维图形可视化基本过程 4.1.3使用面片创建图形模型 4.2MATLAB中的颜色 4.2.1着色技术 4.2.2RGB真彩着色 4.2.3颜色表 4.2.4索引着色 4.2.5颜色编辑器 4.2.6shading模式 4.3光照效果设置 4.3.1光源对象 4.3.2光照方法 4.4透明效果 4.4.1hidden函数 4.4.2设置透明度数值 4.4.3透明度数据映射 4.5小结 第5章MATLAB动画设计 5.1擦除方式动画设计 5.2质点运动轨迹方式动画设计 5.3电影放映方式动画设计 5.4MATLAB动画与AVI文件 5.4.1AVI文件录制 5.4.2AVI文件执行 5.5小结 第6章MATLAB图像显示技术 6.1MATLAB图像文件的格式 6.2图像类型 6.2.1索引图像 6.2.2灰度图像 6.2.3RGB图像 6.2.4二值图像 6.2.5图像序列 6.3图像处理基本函数 6.3.1获取信息命令 6.3.2图像读入和显示命令 6.3.3图像写回命令 6.4图像类型转换 6.5标准图像显示技术 6.5.1imshow函数 6.5.2显示灰度图像 6.5.3显示二值图像 6.5.4显示索引图像 6.5.5显示真彩图像 6.5.6显示图形文件中的图像 6.6特殊图像显示技术 6.6.1添加颜色条 6.6.2显示多帧图像阵列 6.6.3图像上的区域缩放 6.6.4纹理映射 6.6.5在一个图形窗口中显示多幅图像 6.7MATLAB中的颜色模型 6.7.1颜色模型的分类 6.7.2颜色模型的转换 6.8小结 第7章图形的打印和导出 7.1图形打印和导出概述 7.2图形打印 7.2.1使用菜单打印图形 7.2.2图形打印命令 7.2.3打印设置 7.3图形导出 7.3.1使用菜单导出图形 7.3.2图形导出命令 7.3.3导出设置 7.4小结 第8章句柄图形对象 8.1对象结构 8.2对象属性 8.2.1根对象 8.2.2图形窗口对象 8.2.3坐标轴 8.2.4内核对象 8.3对象操作 8.3.1创建图形对象 8.3.2属性值查询与设置 8.3.3属性默认值 8.3.4对象操作实例 8.3.5句柄图形函数 8.4小结 第9章MATLABGUI的组成与结构 9.1层次结构 9.2uimenu菜单及设计 9.2.1菜单建立 9.2.2菜单属性 9.2.3回调属性 9.2.4菜单快捷键 9.2.5菜单的外观 9.2.6制作现场菜单 9.3GUIDE界面
9.4GUIDE组件及属性
9.4.2单选按钮
9.4.4面板与按钮组
9.4.5复选框
9.4.6文本标签
9.4.7编辑文本框
9.4.8滑动条
9.4.9下拉菜单
9.4.10列表框
9.4.11双位按钮
9.4.12坐标轴与ActiveX控件
第10章MATLABGUI基础设计
10.1设计原则与步骤
10.1.1设计原则
10.1.2设计步骤
10.2界面设计工具
10.2.1GUI设计窗口
10.2.2设计编辑器
10.3控制布置原则
10.4界面和代码设计
10.4.1构思草图
10.4.2绘制控件
10.4.3调整控件
10.4.4设置属性
10.4.5M文件编写
10.4.6创建菜单
10.4.7对象浏览器
10.4.8Tab顺序编辑器
10.4.9GUI程序的存储
10.5程序运行
10.6对话框设计
10.6.1普通对话框
10.6.2文件名处理对话框
10.6.3颜色设置对话框
10.6.4字体设置对话框
10.6.5输入对话框
10.6.6消息显示对话框
10.6.7提问对话框
10.6.8出错对话框
第11章MATLABGUI高级设计
11.1事件处理
11.2回调函数
11.2.1中断回调规则
11.2.2回调函数原型
11.3回调处理 11.3.1递归函数调用 11.3.2M文件调用
11.3.3函数句柄调用
11.4GUIDE编程
11.5M文件编程设计
11.5.1界面设计
11.5.2函数回调
11.6小结 下篇设计实例篇 第12章GUI设计在高等数学中的应用
12.1绘制极坐标曲线
12.2空间解析几何
12.3函数极限可视化
12.4求函数的零点
12.5多项式的曲线拟合
12.6求函数在某处的导数
12.7函数差分法求导
12.8函数的数值定积分
12.9二重积分计算
12.10微分方程求解
第13章GUI设计在大学物理中的应用
13.1导弹打击过程模拟
13.2旋螺线运动演示
13.3碰撞运动演示
13.4应力状态分析
13.5分子运动速度演示
13.6偶极子的电势和电场强度
13.7电流环磁场分布
13.8波的合成及拍频现象
13.9光的双缝干涉
第14章GUI设计在电工学中的作用
14.1直流电阻电路分析
14.2戴维南定理
14.3一阶动态电路
14.4二阶动态电路
14.5正弦稳态电路
14.6非正弦稳态电路
14.7调谐振荡电路
14.8电路信号合成
言本书第1版自从2008年出版发行以来,已被多所院校作为数学、计算机类课程的教材和教学辅导参考书;2010年升级的第2版继续延续着畅销的强劲劲头,深受高校师生的喜爱。我们根据读者的需求和软件的升级,结合MATLAB的最新版本,在第2版的基础上,结合高校MATLAB应用教学和工程实际应用的需要,从实用角度出发,循序渐进地讲述MATLAB GUI设计,并通过大量的设计实例和典型应用实例,帮助读者掌握从基本的数据可视化到高级的交互式图形界面设计技术,并对全书的结构进行了完善与优化,增加了MATLAB基础部分的内容,更加适合教学和自学的需要。GUI是实现人机交互的中介,具有强大的功能,可以完成许多复杂的程序模块。想要熟练快捷地使用GUI,需要具有一定的知识储备和必要的经验与技巧。关于MATLAB GUI的入门,我们推荐使用MATLAB的帮助文档,仔细研读help文档是最好的办法。读者需要了解函数及句柄等必要基础知识,熟悉各个控件对象的基本属性和操作方法,知晓不同控件的使用条件及其特有的功能,并会采用不同的使用手段来实现相同功能的设计。菜单和控件需要熟练掌握菜单和控件。菜单很简单,只需弄清楚菜单之间的关系以及如何调用菜单就可以了。控件使用的重点是用好CreateFcn和Callback。CreateFcn中的语句是在程序运行时立即执行脚本。如果希望界面可控,那么最好用Callback属性。在相应的控件下,添加相应的脚本就可以实现比较复杂的计算绘图等功能。事件处理需要重点掌握事件处理、理解函数回调的机理以及不同条件下回调的处理。使用独立回调函数技术,可以让复杂的回调变得简单;全局变量是在函数的公共区说明,整个函数以及所有对函数的递归调用都可以利用全局变量;同Tag属性一样,UserData属性可在函数之间或递归函数的不同部分之间传递信息。如果需要多个变量,这些变量可以在一个容易辨识的对象的UserData属性中传递;可以通过函数句柄来定义回调实现数据的访问和方法的实现。GUI设计的原则和步骤在设计GUI时,要注意一定的原则和步骤,分析界面所要求实现的主要功能,明确设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。另外,对于GUI在具体学科的应用,其学科的知识是基础,在掌握具体学科的相关知识及原理后,并用代码来实现,才能很好地结合MATLAB进行GUI编程。GUI实现方式的选择最后考虑的问题是实现方式的选择:是使用GUIDE还是全脚本?MATLAB自带的GUI设计工具GUIDE的好处是非常容易入手,风格很像VB,相关的控件可以随便拖来使用,它们的位置和大小也可以像拖Windows一样方便。但是GUIDE生成的是一个fig文件,同时还会生成一个包含fig中放置控件的相关回调函数的M脚本。这两个文件照理说是互相影响的,但是当你改动了其中一个文件的内容,例如在fig中删掉一个原来的控件,但M脚本中对应的该控件的回调函数却仍然存在,虽说回调函数是空的,没什么关系,但破坏了程序架构的美感,需要手动删掉这些代码;同时GUIDE还没有实现创建uitoolbox和所有axes的子对象。使用全脚本入门的最好方法就是读代码,MATLAB自带了很多demo,包括按钮、单选按钮、框架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮等的使用,顺便还能了解MATLAB里句柄函数的参数传递,可以更直观而快速地掌握GUI设计的技巧。使用M文件代码可以重复使用,可以生成非常复杂的界面,可以实现组件,创建对象,在handle中方便地存取数据,将创建对象代码与动作执行代码很好地结合起来。当然,最好的办法是针对不同的情况来决定使用GUIDE还是全脚本,同时还可以考虑结合而使用,从而发挥各自的优势。看得再多,也不如做的学得快。自己动手,不断摸索,在实践中体会到学习的快乐!本书主要由陈光、毛涛涛、王正林、王玲编著,其他参与编写的人员有肖静、王伟欣、肖绍英、王权、夏路生、钟颂飞、朱桂莲、朱艳、邹求来、钟杜清、刘拥军等。在此对所有参与编写的人员表示感谢!再次向田宏峰老师表示衷心的感谢!对关心、支持我们的读者表示感谢!读者可登录华信教育资源网(.cn)下载本书的例程、源代码及相关资料。由于时间仓促和作者水平和经验有限,书中错漏之处在所难免,敬请读者指正,我们的电子邮箱是:wa_。作
2013年6月于北京
亚马逊评分
帮助平台入驻已有天涯账号?
这里是所提的问题,您需要登录才能参与回答。
"天涯问答"是天涯社区旗下的问题分享平台。在这里您可以提问,回答感兴趣的问题,分享知识和经历,无论您在何时何地上线都可以访问,此平台完全免费,而且注册非常简单。
急急!!MATLAB
GUI编程----学生成绩管理系统 有人接触过吗?跪求编码 望好心人帮忙
要有以下功能1.)学生信息添加;2.)学生删除;3.)学生信息修改;4.)学生信息查询,可以根据学生的姓名或学号进行查询;5.)学生成绩统计:如不及格门数,平均成绩等信息。
09-12-17 & 发布
要将用Matlab语言编写的函数文件编译成可独立执行的*.exe文件(即可脱离Matalab环境的执行程序),首先要安装和配置好Matlab Compiler,一般来说,在安装Matlab时就已经安装了相应版本的Matlab Compiler。只是不同版本的Matlab,其编译器的使用方法有一定的差异,这一点要引起一定的注意。 在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入: Mbuild –setup 然后根据提示执行相应的操作,使用者可根据自己计算机中现有编译器的情况选择合适的编译器,如VC++ 6.0、VC++7.0、Bland C的编译器等,目前Matlab好象还不支持VC++8.0(我计算机安装的就是VC++2005,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 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.大功告成。 方法三:运行mcc -B sgl GUI.m 生成exe文件,把GUI.exe文件和GUI.ctf文件拷贝到目标电脑上,然后在目标电脑上安装 MCRInstaller.exe ,安装完以后,我点击GUI.exe,它显示:this application has requested the Runtime to terminate it in an unusual way。这个可能是哪里出错了呢? Solution: The segmentation violation can be caused due to a corruption in either the profile of the current user or by corrupted Windows libraries. In order to determine which is the cause, try logging in as a different username and run MATLAB. If you are able to successfully launch MATLAB under a different username: 1. Log onto the machine, as the user that is receiving the error. 2. On your desktop, click on Start & Run 3. Type regedit in the Open text field and click OK, this will bring up the Registry Editor 4. In the Registry Editor expand the following folders: HKEY_CURRENT_USER & Software & MathWorks & Matlab 5. Under the MATLAB key, find the folder having the same name as the version number of the MATLAB and delete it. This Registry key will be regenerated the next time MATLAB is started. Click on the link below to view an image of the Registry Editor, which shows how to delete a registry key for MATLAB 6.5 (R13). After following these steps, you should be able to launch MATLAB successfully. If MATLAB crashes regardless of the user who is logged in, the crash may be caused by corrupted system libraries. For Windows NT, 2000, or XP, some customers have found that reinstalling Windows Service Packs have resolved the issue 这个是启动6.5时出类似错误的解决方法,你试试7.0可否成功吧
请登录后再发表评论!matlab运行尚未编程的gui时总出错,可能原因是什么?_百度知道
matlab运行尚未编程的gui时总出错,可能原因是什么?
我有更好的答案
按默认排序
贴报错信息
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 matlab gui教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信