matlab实验 6.docx

上传人:b****7 文档编号:11232800 上传时间:2023-02-26 格式:DOCX 页数:26 大小:123.38KB
下载 相关 举报
matlab实验 6.docx_第1页
第1页 / 共26页
matlab实验 6.docx_第2页
第2页 / 共26页
matlab实验 6.docx_第3页
第3页 / 共26页
matlab实验 6.docx_第4页
第4页 / 共26页
matlab实验 6.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

matlab实验 6.docx

《matlab实验 6.docx》由会员分享,可在线阅读,更多相关《matlab实验 6.docx(26页珍藏版)》请在冰豆网上搜索。

matlab实验 6.docx

matlab实验6

实验六MATLAB图形用户界面制作和仿真

一、实验目的:

1、了解句柄图形对象

2、了解GUI的基本知识

3、掌握创建GUI对象的方法

4、GUI编程练习

二、相关知识

1、句柄图形对象

(1)图形框架窗口对象(Figure)

•绘制图形的图形框架窗口对象

•核心(Core)对象

•绘图(Plot)对象

•注释对象

(2)图形对象属性的获取和设置

•get函数

•set函数

•默认属性

(3)图形对象的操作

•查找对象

•堆积次序

2.GUI的基本知识

(1)启动GUI

(2)布局(Layout)编辑器

(3)GUIDE模板介绍

(4)运行GUI

3.创建GUI对象

(1)GUI窗口的布局

•改变GUI窗口的大小

•控件的添加和对齐

(2)GUI控件的属性控制

•属性查看器的显示

•一些常用的属性

(3)菜单的添加

•主菜单的创建

•弹出式菜单的的创建

4.GUI编程

•GUI的M文件

–与句柄结构共享数据

–M文件中的函数和响应

•控件的使用

•使用句柄结构进行GUI数据操作

三、上机练习

(一)、练习书上的例子

启动GUIDE

启动GUIDE有三种方法:

在MATLAB操作桌面,单击File→New→GUI选项、单击工具栏上的图标、在命令窗口输入guide后回车,出现GUIDEQuickStart对话框。

CreatenewGUI选项卡包含四个初始化设计模板:

BlankGUI(Default)创建一个空白的GUI、1)GUIwithUicontrols创建一个带有控制组件的GUI、GUIwithAxesandMenu创建一个带有轴对象和菜单的GUI、ModelQuestionDialog创建一个问题对话框。

2)OpenExistingGUI选项卡含有一个Recentyopenedfiles(最近打开过的GUI文件)选择框。

选择BlankGUI(Default)模板,单击【OK】按钮,打开GUI设计窗口。

单击设计窗口File→Preferences选项,打开Preferences对话框,选中Shownameincomponentpalette选项,在组件面板中显示控件名称。

设计窗口的右边为版面设计区,向版面设计区添加控件,可以用鼠标从组件面板拖动来完成版面设计完成后,单击工具栏的运行按钮,即可运行GUI。

首次运行GUI时,系统会提示存盘。

存盘完成后,系统会打开运行界面窗口和M文件编辑窗口,同时生成两个文件:

一个是fig文件,包含对GUI及其组件的完整描述;另一个是M文件,包含GUI的程序代码和组件回调事件代码。

控件介绍:

(1)命令按钮(PushButton)

(2)开关按钮(ToggleButton)

(3)单选按钮(RadioButton)

(4)核选框(CheckBox)

(5)滑动条(Slider)

(6)可编辑文本框(EditText)

(7)静态文本框(StaticText)

(8)弹出式菜单(Pop-UpMenu)

(9)列表框(Listbox)

(10)坐标轴(Axes)

(11)面板(Panel)

(12)按钮组(ButtonGroup)

(13)ActiveX控件(ActiveXControl)

对象属性检查器设置:

利用对象属性检查器,可以查看每个对象的属性值,也可以修改、设置对象的属性值。

选中某个控件,单击GUI设计窗口工具栏上

按钮、单击View→PropertyInspector子菜单,直接双击控件,都可以打开对象属性检查器。

界面制作包括界面设计和程序实现,一般制作步骤如下:

Ø分析界面所要求实现的主要功能,明确设计任务;

Ø界面设计,确定界面所用部件及其属性;

Ø回调函数设置;

Ø对实现的功能进行逐项调试检查;

Ø对界面部件进行装饰,使其更人性化。

例子练习:

例1:

根据上面的界面制作步骤,制作一个界面,点击不同控件能分别显示sin(x)和tan(x)。

第一步,题意分析

本例子需要有一个坐标轴(Axes);要三个命令按钮控件分别控制sin(x)和tan(x)显示以及一个停止按钮。

第二步,界面设计

(1)新建一个GUI界面

在MATLAB操作桌面上,单击File→New→GUI选项,选择BlankGUI(Default)模板,单击“OK”按钮,打开GUI设计窗口。

(2)添加控件

用鼠标从GUI设计窗口的组件面板中拖动坐标轴(Axes),3个命令按钮(PushButton)控件。

(3)排列控件

选中两个或两个以上需要排列的控件,单击设计窗口的工具或单击Tools→AlignObjects菜单项,打开排列工具对话框,

(4)设置控件属性

双击需要属性设置的控件,打开对象属性检查器,设置控件属性。

“y=sin(x)”按钮:

String属性修改为y=sin(x),FontUnits属性改为normalized,FontWeight属性改为bold,FontSize属性改为0.3,其他为默认值。

“y=tan(x)”编辑文本:

String属性修改为y=tan(x),其他属性同上。

“STOP”按钮:

String属性修改为“stop”,Tag属性修改为“stop”,其他同上。

控件设置效果如图所示:

第三步,回调函数设置

在“求零极点”按钮上点击右键,下拉菜单选择ViewCallBacks→CallBack(回调函数),

在函数functionsinx_Callback(hObject,eventdata,handles)后面添加如下程序:

x=0:

0.01:

2*pi;

y=sin(x);

plot(x,y)

title('y=sin(x)');

xlabel('坐标x');

ylabel('坐标y');

在函数functiontanx_Callback(hObject,eventdata,handles)后面添加如下程序:

x=0:

0.01:

2*pi;

y=tan(x);

plot(x,y)

title('y=tan(x)');

xlabel('坐标x');

ylabel('坐标y');

在函数functionstop_Callback(hObject,eventdata,handles)后面添加如下程序:

close

第四步,逐项调试检测

单击工具栏的运行按钮,按照提示保存后,运行并验证程序功能。

第五步,装饰控件

一般情况停止按钮为红色较为习惯,运行按钮为绿色的,所以将STOP控件的PropertyInspercter里的BackgroundColor设置为红色;将y=sin(x)和y=tan(x)控件的PropertyInspercter里的BackgroundColor设置为绿色的

例2:

设计一个滚动条与一个编辑文本框互相传递并显示0~10间的数字。

1、题意分析

本例需调用一个滚动条(Sliders)、一个动态文本编辑框(EditText)、一个静态文本框(StaticText)、两个命令按钮(PushButton)。

2、控件分析

“滚动条”控件(Sliders)的响应:

在图形界面中添加该控件之后,设置它的属性最大值max和最小值min,其值将在max和min之间变化。

要获取“滚动条”控件的当前值及范围,

“文本框”控件(EditText)的响应:

在图形界面中添加该控件之后,该控件的属性相当于其他语言设计中的文本框属性,允许用户动态地编辑或是输入文本字符串。

3、界面设计

(1)新建一个GUI界面

在MATLAB操作桌面上,单击File→New→GUI选项,选择BlankGUI(Default)模板,单击“OK”按钮,打开GUI设计窗口。

(2)添加控件

用鼠标从GUI设计窗口的组件面板中拖动滚动条(Slider),一个静态文本(StaticText)一个编辑文本(EditText),3个命令按钮(PushButton)控件。

(3)排列控件

选中两个或两个以上的需要排列的控件,使用几何位置排列工具,排列图标。

(4)设置控件属性

双击需要属性设置的控件,打开对象属性检查器,设置控件属性。

滚动条:

BackgroundColor属性修改为深蓝色,Max属性修改为10,Max属性修改为0,其他为默认值。

编辑文本:

String属性修改为“数字显示栏”,FontUnits属性改为normalized,FontWeight属性改为bold,FontSize属性改为0.3。

其他为默认值。

编辑文本:

String属性修改为“显示”,其他属性同上。

“初始化值”按钮:

String属性修改为“初始化值”,Tag属性修改为“run”,BackgroundColor属性修改为绿色,FontUnits属性改为normalized,FontWeight属性改为bold,FontSize属性改为0.3。

其他为默认值。

“stop”按钮:

String属性修改为“stop”,Tag属性修改为“stop”,BackgroundColor属性修改为红色,其他同上。

程序界面控件布置如图

4、回调函数设置

各控件的回调函数Callback为对象被选中时执行的函数。

在“初始化值”按钮上点击右键,下拉菜单选择ViewCallBacks→CallBack(回调函数),

在函数functionrun_Callback(hObject,eventdata,handles)后面添加如下程序:

set(handles.edit1,'String',num2str(get(handles.slider1,'Value')));

在滚动条上点击右键,下拉菜单选择ViewCallBacks→CallBack(回调函数),

在函数functionslider1_Callback(hObject,eventdata,handles)后面添加如下程序:

set(handles.edit1,'String',num2str(get(handles.slider1,'Value')))

在编辑文本上点击右键,下拉菜单选择ViewCallBacks→CallBack(回调函数),

在函数functionedit1_Callback(hObject,eventdata,handles)后面添加如下程序:

val=str2double(get(handles.edit1,'String'));

ifisnumeric(val)&length(val)==1&val>=get(handles.slider1,'Min')&val<=get(handles.slider1,'Max')

set(handles.slider1,'Value',val);

else

set(handles.edit1,'String','nonumber')

end

在“stop”按钮上点击右键,下拉菜单选择ViewCallBacks→CallBack(回调函数),

在函数functionstop_Callback(hObject,eventdata,handles)后面添加如下程序:

close

5、保存并运行GUI

单击工具栏的运行按钮,按照提示保存后,运行并验证程序功能。

拨动滚动条,编辑文本内显示滚轮的当前数值;在编辑文本里输入0~10任意一数字,滚动条的滚轮将移到该数字的位置。

如果在编辑文本内输入的数字不在0~10之间,编辑文本将提示“nonumber”;任何时刻单击“初始化值”按钮,滚动条和编辑文本都归零。

运行结果如图所示。

一、图形对象句柄函数

1.图形对象句柄函数

函数名称

说明

函数名称

说明

gcf

获得当前图形窗口的句柄

gcbf

获得当前正在调用的图形的句柄

gca

获得当前坐标轴的句柄

gco

获得当前对象的句柄

gcbo

获得当前正在调用的对象的句柄

函数名称

函数格式

说明

delete

delete(h)

删除句柄所对应的图形对象。

h为对象句柄

close

close(h)

关闭句柄所对应的图形对象。

h为对象句柄

findobj

h=findobj(‘ProperName’,‘P’)

查找具有某种属性的图形对象句柄。

ProperName为对象的某一个属性(通常使用tag),P为该属性的属性值,h为得到的句柄

get

PropertyValue=get(handle,‘Name’)

获取指定图形对象某个指定属性的属性值。

其中handle为图形对象的句柄、Name为某个属性名称、PropertyValue为返回的属性值

set

set(handle)

显示指定图形对象所有可设置的属性名称及其可能取值。

handle为图形对象的句柄

P=set(handle,‘ProperName’)

显示指定图形对象某个属性的取值。

handle为图形对象的句柄,ProperName为属性,P为返回的属性值

set(handle,‘Name1’,Value1,‘Name2’,

Value2,‘Name3’,Value3,...)

设置指定图形对象的某个属性。

handle为图形对象的句柄,Name1为某个属性,Value1为设置的属性值,其他参数相同

图形对象属性:

1.属性名与属性值

MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。

例如:

LineStyle是曲线对象的一个属性名,决定线形,可以是-、:

、-.、--等。

注:

属性名的写法不区分大小写。

此外,属性名要用单撇号括起来。

2.属性的操作

①set函数重设对象属性,调用格式为:

set(句柄,属性名1,属性值1,属性名2,属性值2,…)

其中句柄用于指明要操作的图形对象。

如果在调用set函数时省略全部属性名和属性值,则将显示出句柄所有的允许属性。

②get函数获取属性值,调用格式为:

V=get(句柄,属性名)其中V是返回的属性值。

如果在调用get函数时省略属性名,则将返回句柄所有的属性值。

例如,绘制正弦曲线,

x=0:

pi/10:

2*pi;

h=plot(x,sin(x));

set(h,'Color','r','LineStyle',':

','Marker','p');

col=get(h,'Color');

图形窗口对象

建立图形窗口对象使用figure函数,其调用格式为:

句柄变量=figure(属性名1,属性值1,属性名2,属性值2,…)

MATLAB通过对属性的操作来改变图形窗口的形式。

也可以使用figure函数按MATLAB缺省的属性值建立图形窗口:

figure或句柄变量=figure

要关闭图形窗口,使用close函数,其调用格式为:

close(窗口句柄)

另外,closeall命令可以关闭所有的图形窗口,clf命令则是清除当前图形窗口的内容,但不关闭窗口。

例3:

建立一个图形窗口。

该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为300像素点和150像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将显示“Hello,KebordKeyPressed.”字样。

命令如下:

hf=figure('Color',[0,1,0],'Position',[1,1,300,150],...

'Name','图形窗口示例','NumberTitle','off','MenuBar','none',...

'KeyPressFcn','disp(''Hello,KeyboardKeyPressed.'')');

菜单:

MATLAB可以创建两种菜单:

下拉式菜单和上下文(即弹出式)菜单。

在GUIDE窗口中,单击Tools→MenuEditor…选项、或者单击工具栏中的菜单编辑器图标

在打开的菜单编辑器中,单击

新菜单图标,选中Untitled1菜单项。

MenuBar选项卡

(1)Label:

显示菜单项的标识字符串,在标识字符串中的某字母前加&字符则定义一个快捷键,由〈Alt〉键+该字符来激活。

(2)Tag:

菜单项的标识项。

(3)Accelerator:

定义菜单项的热键,与〈Ctrl〉键组合使用。

(4)Separatorabovethisitem:

在当前菜单项前是否显示一个分隔符,默认是不显示。

(5)Checkmarkthisitem:

在当前菜单项前是否显示校验标记,默认是不显示。

(6)Enablethisitem:

设置菜单项使能状态,默认是使能。

(7)Callback:

设置菜单回调函数。

(8)Moreoptions:

设置菜单属性。

单击该按钮,可打开菜单的属性设置对话框。

ContextMenus选项卡用于创建上下文(弹出式)菜单,多数是用鼠标右键单击某个图形对象时,在屏幕上弹出的菜单。

这种菜单出现的位置是不固定的,而且总是和某个图形对象的UIContextMenu属性相联系。

先创建上下文菜单,再将图形对象的UIContextMenu属性设置为菜单的标记。

另外,用户可以使用或保留图形窗口标准菜单。

在GUI设计窗口编辑区的空白处双击鼠标(不要选择任何控件),打开图形窗口的属性列表,设置MenuBar属性为figure即可。

例4:

现将例1里的按钮y=sin(x)和按钮y=cos(x)合并到Run按钮,通过Run按钮的上下文菜单来选择y=sin(x)和y=cos(x)。

跟我练:

题意分析

将按钮y=cos(x)删除,将按钮y=sin(x)改做Run按钮,同时在Run按钮链接一个上下文菜单来实现原来的按钮y=sin(x)和按钮y=cos(x)的绘图功能。

创建菜单

打开菜单编辑器MenuEditor→上下文菜单ContextMenus→点击Untitled_1→将UIContextMenuProperty里的Tag修改为tu→点击UIContextMenu里的Callback的View→编辑M文件,添加如下程序内容:

[x,map]=imread('flower.jpg');

imshow(x)

点击菜单编辑器MenuEditor的NewMenuItem,→添加菜单子项sin(x)→将UIContextMenuProperty里的属性Label修改为sin(x)→属性Tag修改为sin(x)→点击Callback后的View→编辑M文件,添加如下程序内容:

x=0:

0.01:

2*pi;

y=sin(x);

plot(x,y)

title('y=sin(x)');

xlabel('坐标x');

ylabel('坐标y');

在默认情况显示y=sin(x)曲线。

点击菜单编辑器MenuEditor的NewMenuItem,→添加菜单子项cos(x)→将UIContextMenuProperty里的属性Label修改为cos(x)→属性Tag修改为cos(x)→点击Callback后的View→编辑M文件,添加如下程序内容:

x=0:

0.01:

2*pi;

y=cos(x);

plot(x,y)

title('y=cos(x)');

xlabel('坐标x');

ylabel('坐标y');

界面设计

把例1的GUI设计窗口里y=cos(x)按钮删除。

打开y=sin(x)按钮的属性编辑器PropertyInspercter,将其String属性改为Run;属性UIContextMenu的属性值改为tu,其他不变。

回调函数设置

在控件Run上单击右键→ViewCallbacks,在函数functionrun_Callback(hObject,eventdata,handles)后面添加如下程序:

[x,map]=imread('flower.jpg');

imshow(x)

这样当用户点击Run控件时,界面就会默认地显示一张图片

保存并运行GUI

单击工具栏的运行按钮,按照提示保存后,运行并验证程序功能。

继续在例4中添加一个菜单,改变背景颜色,若不合适就返回原来的颜色

打开菜单编辑器MenuEditor→菜单MenuBar→点击Untitled_1→将UIMenuProperty里的Tag修改为color0

点击菜单编辑器MenuEditor的NewMenuItem,→添加菜单子项rr→将UIMenuProperty里的属性Label修改为rr→属性Tag修改为rr→点击Callback后的View→编辑M文件,functionrr_Callback(hObject,eventdata,handles)

添加如下程序内容:

set(gcf,'color','r')

点击菜单编辑器MenuEditor的NewMenuItem,→添加菜单子项g1→将UIMenuProperty里的属性Label修改为g1→属性Tag修改为g1→点击Callback后的View→编辑M文件,functiong1_Callback(hObject,eventdata,handles)

添加如下程序内容:

set(gcf,'color',‘g')

点击菜单编辑器MenuEditor的NewMenuItem,→添加菜单子项re→将UIMenuProperty里的属性Label修改为re→属性Tag修改为rr→点击Callback后的View→编辑M文件,functionkt8_1_OpeningFcn(hObject,eventdata,handles,varargin)添加如下程序内容:

xx=get(gcf,'color');

handles.xx=xx;

在functionre_Callback(hObject,eventdata,handles)添加如下程序内容:

xx=handles.xx;

set(gcf,'color',xx)

函数功能

函数格式

说明

打开文件

fname=uigetfile

列出当前目录下MATLAB能识别的所有文件,fname为返回选定的文件名

uigetfile(‘FilterSpec’,‘DTitle’)

列出当前目录下由参数FilterSpec指定类型的文件,DTitle为打开对话框的标题

保存文件

[F,P]=uiputfile(‘InitFile’,‘DTitle’)

显示用于保存文件的对话框,InitFile为保存类型,DTitle为对话框的标题。

F为返回的文件名,P为文件路径。

F,P可缺省

颜色设置

uisetcolor(h,‘DTitle’)

设置图形对象的颜色。

h为图形对象句柄,DTitle为打开的颜色对话框标题

字体设置

uisetfont(h,‘DTitle’)

设置文本字符串、坐标轴或控件的字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

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

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