ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:408.84KB ,
资源ID:4540145      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4540145.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlab GUI设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

matlab GUI设计.docx

1、matlab GUI设计Matlab GUI设计设计的一般步骤:1. 程序功能描述2. 程序界面设计3. 程序代码设计4. 程序测试运行在GUI的设计中应注意在面板上进行按钮的静态布置时一定要事先预算好按钮的个数。更重要的一点是如果你放置了一个按钮并且对此按钮的属性进行了某种操作,那么该按钮的痕迹将永远保存在你所建的面板上,你将该按钮删除,然后重新建一个按钮,并将其属性值设置和上一个按钮一模一样,那并不能保证你将上一按钮覆盖,在程序进行运行的过程中它只会识别上一按钮(已经删除的按钮),而你将上一按钮的删除则造成程序运行中的错误或是得不到你预想的界面效果,为了避免这种情况,在进行设计的时候对任一

2、按钮属性的设置不要与已经删除按钮的属性相同。 在GUI指令的作用下,待打开的文件名不区分字母的大小写。打开空白版的GUI界面是个控件的说明:控件名PropertyName功能按钮PushButton最常用的控件,用于响应用户的鼠标单击,按钮上有说明文字说明其作用。切换按钮ToggleButton当单击时会凹凸状态切换。单选按钮RadioButton当单击时会用黑白点切换,总是成组出现,多个单选按钮互斥,一组中只有一个被选中。复选框CheckBox当单击时会用切换,有选中、不选中和不确定等状态,总是成组出现,多个复选框可同时选用。文本框EditText凹形方框,可随意输入和编辑单行和多行文字,并

3、显示出来。静态文本框StaticText用于显示文字信息,但不接受输入。滚动条Slider可以用图示的方式显示在一个范围内数值的大概值范围,用户可以移动滚动条改变数值。框架Frame将一组控件围在框架中,用于装饰界面。列表框ListBox显示下拉文字列表,用户可以从列表中选择一项和多项。弹出式菜单PopupMenu相当于文本框和列表框的组合,用户可以从下拉列表中选择。坐标轴Axes用于绘制坐标轴。* 控件的常用属性: 创建控件以后,要对控件的各种属性值进行设置,大部分控件都要对以下的属性值进行设置:(1)string属性:用于显示在控件上的字符串,起说明或提示作用。(2)callback属性:

4、回调函数,与菜单的一样。(3)enable属性:表示该控件是否有效,”on“表示有效,”off“表示无效。(4)tooltipstring属性:当鼠标放在控件上时显示提示信息,为字符串。(5)字体属性:包括fontname,fontsize等。(6)Tag属性:控件的标记,用于标识控件。(7)Units取值可以是pixels (缺省值), normalized(相对单位), inches, centimeters或points(磅); * 实现GUI的基本机制是对控件的属性编程,特别是对其回调函数(callback)的编写。注意回调函数的概念,它指的是在对象的某一个事件发生时,MATLAB内部

5、机制允许自动调用的函数。 其几个参数的意思分别为:hObject表示当前窗口的句柄;eventdata表示事件代码,为保留;handles是该窗口中的所有句柄的集合。例1:利用GUI工具箱设计一界面使其满足如下的功能。(1)在编辑框中,可输入表示阻尼比的标量或“行数组”数值,并在按【enter】键后,在轴上画出相应的蓝色曲线(坐标范围:X轴0,15;Y轴0,2)。(2)在点击【Grid on】或【Grid off】键时,在轴上画出或删除“分格线”;缺省时无分格线。(3)在菜单【Options】下,有2个下拉菜单【Box on】和【Box off】;缺省时为Box off状态。(4)所设计的界面

6、和其上图形对象、控件对象都按比例缩放。界面的最终效果如下:解:1.启动GUI工具箱以后,布置如下图所示的界面:上述界面包含一个坐标轴控件、两个静态文本框控件、一个可编辑文本框、两个按钮控件。2.对各控件进行属性设置:1) 双击工作区或控件可引出图形窗和相应控件的“属性编辑框(Property Inspector)”。在图形窗的属性编辑框中,设置如下属性值: Name Myguil %图形窗的名称 Resize on %图形窗可以缩放 Tag figuer1 %生成handles.figure1域存放图形窗句柄2) 在轴属性编辑框中,设置如下属性值: Units normalized %采用相对

7、度量单位,缩放时保持比例 Box off %坐标轴不封闭 Tag axes1 %生成handles.axes1域存放轴句柄 XLim 0,15 %X轴范围 YLim 0,2 %Y轴范围3) 在图形区上方的静态文本的属性编辑框中,设置如下属性值: Fontsize 0.696 %字体大小 FontUnits normalized %采用相对度量单位,缩放时保持字体比例 String 归一化二阶系统的阶跃响应曲线 %显示在界面上的字符 Tag title_text %生成handles.title_text域存放静态文本句柄 HorizontalAlignment Center %文字中心对齐 U

8、nits normalized %采用相对度量单位,缩放时保持该区比例4) 在可编辑文本上方的静态文本的属性编辑框中,设置如下属性值: Fontsize 0.351 %字体大小 FontUnits normalized %采用相对度量单位,缩放时保持字体比例 HorizontalAlignment Center %文字中心对齐 String 系统阻尼比 %显示在界面上的字符 Tag edit_text %生成handles.edit_text域存放静态文本句柄 Units normalized %采用相对度量单位,缩放时保持该区比例5) 在可编辑文本的属性编辑框中,设置如下属性值: Fonts

9、ize 0.626 %字体大小 FontUnits normalized %采用相对度量单位,缩放时保持字体比例 HorizontalAlignment Center %文字中心对齐 String %在界面上显示为空白 Tag zeta_edit %生成handles.zeta_edit域存放弹出式选单句柄 Units normalized %采用相对度量单位,缩放时保持该区比例6) 在上按键的属性编辑框中,设置如下属性值: Fontsize 0.485 %字体大小 FontUnits normalized %采用相对度量单位,缩放时保持字体比例 HorizontalAlignment Cen

10、ter %文字中心对齐 String Grid on %在按键上显示Grid on Tag GridOn_push %生成handles.GridOn_push域存放该键句柄 Units normalized %采用相对度量单位,缩放时保持该键比例7) 在下按键的属性编辑框中,设置如下属性值: Fontsize 0.485 %字体大小 FontUnits normalized %采用相对度量单位,缩放时保持字体比例 HorizontalAlignment Center %文字中心对齐 String Grid off %在按键上显示Grid off Tag GridOff_push %生成han

11、dles.GridOff_push域存放该键句柄 Units normalized %采用相对度量单位,缩放时保持该键比例至此对控件属性的设置基本结束,得到如下界面:3.创建菜单点击“菜单编辑器”图标,引出空白菜单编辑对话窗,再点击该对话窗最左上方的“新菜单New Menu”图标,在左侧空白窗口中,出现”Untitled1”图标;点击此图标则在右侧引出填写栏,在“lable”中填写Options;在“Tag”中填写options,于是左侧的”Untitled1”图标变成“Options”图标,表示此菜单已生成。 先点亮左侧的“Option”图标,再点击菜单编辑对话窗上的“新菜单项NewMenu

12、 Item”图标,就引出等待定义的菜单项;在右侧的“Label”中填写Box on,在“Tag”中填写box_on。重复该小步操作,建立另一个菜单项Box off。 注意:菜单编辑对话窗上的“Callback”不要填写,机器自动生成。4.界面的激活与回调函数的生成点击工作台上的”运行界面“的工具图标,会出现一个询问对话框,当按提示对以上的设计进行存储以后,就会引出2个界面:名为Myguil的(待激活的)图形用户界面;展示名为Myguil的(待填写回调指令的)M函数文件的文件编辑器界面。同时,在当前目录或给定目录上,由MATLAB自动生成了2个文件,即Myguil.fig和Myguil.m。 1

13、)在Myguil.m文件中,填写回调指令:function varargout=zeta_edit_Callback(hObject, eventdata, handles,varargin)z=str2num(get(handles.zeta_edit,String) %从编辑框中获取zeta数据t=0:0.1:15; %设置时间采样数组cla %clear current axisfor k=1:length(z) y(:,k)=step(1,1,2*z(k),1,t); %计算阶跃输出 line(t,y(:,k); %绘制曲线end2)对Grid on与Grid off控件的回调函数的编

14、写Function varargout=GridOn_push_Callback(hObject, eventdata, handles,varargin)grid on function varargout=GridOff_push_Callback(hObject, eventdata, handles,varargin)grid off 3)对box_on与box_off回调函数的编写function varargout=box_on_Callback(hObject, eventdata, handles,varargin)box on %配合菜单Box on的操作指令set(hand

15、les.box_on,enable,off) %使菜单项Box on失能set(handles.box_off,enable,on) %使菜单项Box off使能function varargout=box_off_Callback(hObject, eventdata, handles,varargin)box off %配合菜单Box off的操作指令set(handles.box_off,enable,off) %使菜单项Box off 失能 set(handles.box_on,enable,on) %使菜单项Box on 使能经过以上几个步骤生成的图形用户界面已经可以使用了,只要My

16、guil.m和Myguil.fig在当前目录或在MATLAB搜索路径上,那么在指令窗运行Myguil就能使用该界面,如下:输入阻尼比后显示如下: 点击Grid on后弹出的界面如下,点击Grid off后弹出的界面如上图。至此设计完成。* 控件对象的建立Matlab提供了用于建立控件对象的函数uicontrol,其调用格式为:对象句柄=uicontrol(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,) 例2:建立数制转换对话框。在左边输入一个十进制整数和216之间的数,单击“转换”按钮能在右边得到十进制数所对应的216进制字符串,单击“退出”按钮退出对话框。程序如下: hf=figu

17、re(Color,0,1,1,Position,100,200,400,200,. Name,数制转换,NumberTitle,off,MenuBar,none); uicontrol(hf,Style,Text, Units,normalized,. Position,0.05,0.8,0.45,0.1,Horizontal,center,. String,输 入 框,Back,0,1,1); uicontrol(hf,Style,Text,Position,0.5,0.8,0.45,0.1,. Units,normalized,Horizontal,center,. String,输 出

18、框,Back,0,1,1); uicontrol(hf,Style,Frame,Position,0.04,0.33,0.45,0.45,. Units,normalized,Back,1,1,0); uicontrol(hf,Style,Text,Position,0.05,0.6,0.25,0.1,. Units,normalized,Horizontal,center,. String,十进制数,Back,1,1,0); uicontrol(hf,Style,Text,Position,0.05,0.4,0.25,0.1,. Units,normalized,Horizontal,cen

19、ter,. String,216进制,Back,1,1,0); he1=uicontrol(hf,Style,Edit,Position,0.25,0.6,0.2,0.1,. Units,normalized,Back,0,1,0); he2=uicontrol(hf,Style,Edit,Position,0.25,0.4,0.2,0.1,. Units,normalized,Back,0,1,0); uicontrol(hf,Style,Frame,Position,0.52,0.33,0.45,0.45,. Units,normalized,Back,1,1,0); ht=uicontr

20、ol(hf,Style,Text,Position,0.6,0.5,0.3,0.1,. Units,normalized,Horizontal,center,Back,0,1,0); COMM=n=str2num(get(he1,String);,b=str2num(get(he2,String);,. dec=trdec(n,b);,set(ht,string,dec); uicontrol(hf,Style,Push,Position,0.18,0.1,0.2,0.12,. String,转 换,Units,normalized,Call,COMM); uicontrol(hf,Style

21、,Push,Position,0.65,0.1,0.2,0.12,. String,退 出,Units,normalized,Call,close(hf);程序调用了trdec.m函数文件,该函数的作用是将任意十进制整数转换为216进制字符串。trdec.m函数文件如下: function dec=trdec(n,b) ch1=0123456789ABCDEF; %十六进制的16个符号 k=1; while n=0 %不断除某进制基数取余直到商为0 p(k)=rem(n,b); n=fix(n/b); k=k+1; end k=k-1; strdec=; while k=1 %形成某进制数的字

22、符串 kb=p(k); strdec=strcat(strdec,ch1(kb+1); k=k-1; enddec=strdec;上述程序运行的结果如下图:在输入框中输入一个十进制的数以及一个要转换的进制数以后,点击转换即可得到结果,例如在十进制数中输入123456789,在216进制中输入16点击转换即得一下结果如下图:常用颜色与其对应数值颜色R分量(红色)G分量(绿色)B分量(蓝色)黑色000白色111红色100绿色010蓝色001黄色110洋红色101蓝绿色011灰色0.50.50.5暗红0.500铜色10.620.40碧绿色0.4910.83例3建立图形演示对话框。在编辑框输入绘图命令

23、,单击“绘图”按钮能在左边坐标轴得到所对应的图形,弹出框提供色图控制,列表框提供坐标网格线和坐标边框控制。 解:对控件的编程如下: clf;set(gcf,Unit,normalized,Position,0.2,0.3,0.65,0.35); set(gcf,Menubar,none,Name,图形演示,NumberTitle,off); axes(Position,0.05,0.15,0.55,0.7); uicontrol(gcf,Style,text, Unit,normalized,. Posi,0.63,0.85,0.2,0.1,String,输入绘图命令,Horizontal,c

24、enter); hedit=uicontrol(gcf,Style,edit,Unit,normalized,Posi,0.63,0.15,0.2,0.68,. Max,2); %Max取2,使Max-Min1,从而允许多行输入 hpopup=uicontrol(gcf,Style,popup,Unit,normalized,. Posi,0.85,0.8,0.15,0.15,String,Spring|Summer|Autumn|Winter); hlist=uicontrol(gcf,Style,list,Unit,normalized,. Posi,0.85,0.55,0.15,0.25

25、,String,Grid on|Grid off|Box on|Box off); hpush1=uicontrol(gcf,Style,push,Unit,normalized,. Posi,0.85,0.35,0.15,0.15,String,绘 图); uicontrol(gcf,Style,push,Unit,normalized,. Posi,0.85,0.15,0.15,0.15,String,关 闭,Call,close all); set(hpush1,Call,COMM(hedit,hpopup,hlist);程序中回调函数COMM的程序如下:function COMM(he

26、dit,hpopup,hlist) com=get(hedit,String); n1=get(hpopup,Value); n2=get(hlist,Value); if isempty(com) %编辑框输入非空时 eval(com); %执行从编辑框输入的命令 chpop=spring,summer,autumn,winter; chlist=grid on,grid off,box on,box off; colormap(eval(chpopn1); eval(chlistn2); end 得到的界面如下:上图是在绘图命令的窗口中输入绘图的命令以后所得到的图形。position位置向

27、量x y width height。其中,x y表示相对于图形对象左下角的uicontrol的左下角位置。widht height表示uicontrol的尺寸大小,其单位由属性Units确定Units包括inches:centimeters:normalized:points:pixels: 位置属性值的单位依次为英寸厘米归一化的坐标值,图形的左下角映射为00而右上角的映射为为11打印设置点,等于1/72 英寸屏幕的象素。计算机屏幕分辨率的最小单位。* 菜单设计建立自定义的用户菜单的函数为uimenu,格式为:Hm=uimenu(Hp,属性名1,属性值1,属性名2,属性值2,)功能:创建句柄值

28、为Hm的自定义的用户菜单。其中Hp为其父对象的句柄,属性名和属性值构成属性二元对,定义用户菜单的属性。因其调用方法不同,该函数可以用于建立一级菜单项和子菜单项。建立一级菜单项的函数调用格式为:一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,)建立子菜单项的函数调用格式为: 子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,)菜单对象常用的属性:菜单对象除具有Children(子对象),Parent(父对象),Tag(标签),Type(类型),UserData(用户数据),Enable(使能)和 Visible(可见性)等公共

29、属性,还有一些常用的特殊属性,如回调(callback)属性和菜单名(label)。 另外,用户菜单的外观有四个属性:Position(位置),Separator(分隔线),checked(检录符)和ForeGroundColor(前景颜色)。 1 Tag属性Tag属性的取值是字符串,它定义了该菜单对象的一个标识值。定义了Tag属性后,在任何程序中都可以通过这个标识值找出该菜单对象。2 Type属性Type属性的取值总是uimenu,这个属性值标明图形对象的类型。对菜单对象,其类型就是uimenu,用户不能改写这个属性。3 UserData属性UserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在这个属性中保存与该菜单对

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1