资源描述
实验六 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后回车,出现GUIDE Quick Start对话框。
Create new GUI选项卡包含四个初始化设计模板:Blank GUI(Default)创建一个空白的GUI、1) GUI with Uicontrols创建一个带有控制组件的GUI、GUI with Axes and Menu创建一个带有轴对象和菜单的GUI、Model Question Dialog创建一个问题对话框。
2)Open Existing GUI选项卡含有一个Recenty opened files(最近打开过的GUI文件)选择框。
选择Blank GUI(Default)模板,单击【OK】按钮,打开GUI设计窗口。
单击设计窗口File→Preferences选项,打开Preferences对话框,选中Show name in component palette选项,在组件面板中显示控件名称。
设计窗口的右边为版面设计区,向版面设计区添加控件,可以用鼠标从组件面板拖动来完成版面设计完成后,单击工具栏的运行按钮,即可运行GUI。
首次运行 GUI 时,系统会提示存盘。存盘完成后,系统会打开运行界面窗口和M文件编辑窗口,同时生成两个文件:一个是fig文件,包含对GUI及其组件的完整描述;另一个是M文件,包含GUI的程序代码和组件回调事件代码。
控件介绍:
(1)命令按钮(Push Button)
(2)开关按钮(Toggle Button)
(3)单选按钮(Radio Button)
(4)核选框(Check Box)
(5)滑动条(Slider)
(6)可编辑文本框(Edit Text)
(7)静态文本框(Static Text)
(8)弹出式菜单(Pop-Up Menu)
(9)列表框(Listbox)
(10)坐标轴(Axes)
(11)面板(Panel)
(12)按钮组(Button Group)
(13)ActiveX控件(ActiveX Control)
对象属性检查器设置 :
利用对象属性检查器,可以查看每个对象的属性值,也可以修改、设置对象的属性值。
选中某个控件,单击GUI设计窗口工具栏上 按钮、单击View→Property Inspector子菜单,直接双击控件,都可以打开对象属性检查器。
界面制作包括界面设计和程序实现,一般制作步骤如下:
Ø 分析界面所要求实现的主要功能,明确设计任务;
Ø 界面设计,确定界面所用部件及其属性;
Ø 回调函数设置;
Ø 对实现的功能进行逐项调试检查;
Ø 对界面部件进行装饰,使其更人性化。
例子练习:
例1:根据上面的界面制作步骤,制作一个界面,点击不同控件能分别显示sin(x)和tan(x)。
第一步,题意分析
本例子需要有一个坐标轴(Axes);要三个命令按钮控件分别控制sin(x)和tan(x)显示以及一个停止按钮。
第二步,界面设计
(1)新建一个GUI界面
在MATLAB操作桌面上,单击File → New → GUI选项,选择Blank GUI(Default)模板,单击“OK”按钮,打开GUI设计窗口。
(2)添加控件
用鼠标从GUI设计窗口的组件面板中拖动坐标轴(Axes),3个命令按钮(PushButton)控件。
(3)排列控件
选中两个或两个以上需要排列的控件,单击设计窗口的工具或单击Tools→Align Objects菜单项,打开排列工具对话框,
(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”,其他同上。
控件设置效果如图所示:
第三步,回调函数设置
在“求零极点”按钮上点击右键,下拉菜单选择View CallBacks → CallBack(回调函数),
在函数function sinx_Callback(hObject, eventdata, handles)后面添加如下程序:
x=0:0.01:2*pi;
y=sin(x);
plot(x,y)
title('y=sin(x)');
xlabel('坐标x');
ylabel('坐标y');
在函数function tanx_Callback(hObject, eventdata, handles)后面添加如下程序:
x=0:0.01:2*pi;
y=tan(x);
plot(x,y)
title('y=tan(x)');
xlabel('坐标x');
ylabel('坐标y');
在函数function stop_Callback(hObject, eventdata, handles)后面添加如下程序:
close
第四步,逐项调试检测
单击工具栏的运行按钮,按照提示保存后,运行并验证程序功能。
第五步,装饰控件
一般情况停止按钮为红色较为习惯,运行按钮为绿色的,所以将STOP控件的Property Inspercter里的BackgroundColor设置为红色;将y=sin(x)和y=tan(x)控件的Property Inspercter里的BackgroundColor设置为绿色的
例2:设计一个滚动条与一个编辑文本框互相传递并显示0~10间的数字。
1、题意分析
本例需调用一个滚动条(Sliders)、一个动态文本编辑框(Edit Text)、一个静态文本框(Static Text)、两个命令按钮(Push Button)。
2、控件分析
“滚动条”控件(Sliders)的响应:在图形界面中添加该控件之后,设置它的属性最大值max和最小值min,其值将在max和min之间变化。要获取“滚动条”控件的当前值及范围,
“文本框”控件(Edit Text)的响应:在图形界面中添加该控件之后,该控件的属性相当于其他语言设计中的文本框属性,允许用户动态地编辑或是输入文本字符串。
3、界面设计
(1)新建一个GUI界面
在MATLAB操作桌面上,单击File → New → GUI选项,选择Blank GUI(Default)模板,单击“OK”按钮,打开GUI设计窗口。
(2)添加控件
用鼠标从GUI设计窗口的组件面板中拖动滚动条(Slider),一个静态文本(Static Text)一个编辑文本(Edit Text),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为对象被选中时执行的函数。
在“初始化值”按钮上点击右键,下拉菜单选择View CallBacks → CallBack(回调函数),
在函数function run_Callback(hObject, eventdata, handles)后面添加如下程序:
set(handles.edit1,'String',num2str(get(handles.slider1,'Value')));
在滚动条上点击右键,下拉菜单选择View CallBacks → CallBack(回调函数),
在函数function slider1 _Callback(hObject, eventdata, handles)后面添加如下程序:
set(handles.edit1,'String',num2str(get(handles.slider1,'Value')))
在编辑文本上点击右键,下拉菜单选择View CallBacks → CallBack(回调函数),
在函数function edit1_ Callback(hObject, eventdata, handles)后面添加如下程序:
val=str2double(get(handles.edit1,'String'));
if isnumeric(val)&length(val)==1&val>=get(handles.slider1,'Min')&val<=get(handles.slider1,'Max')
set(handles.slider1,'Value',val);
else
set(handles.edit1,'String','no number')
end
在“stop”按钮上点击右键,下拉菜单选择View CallBacks → CallBack(回调函数),
在函数function stop _ Callback(hObject, eventdata, handles)后面添加如下程序:
close
5、 保存并运行GUI
单击工具栏的运行按钮,按照提示保存后,运行并验证程序功能。
拨动滚动条,编辑文本内显示滚轮的当前数值;在编辑文本里输入0~10任意一数字,滚动条的滚轮将移到该数字的位置。
如果在编辑文本内输入的数字不在0~10之间,编辑文本将提示“no number”;任何时刻单击“初始化值”按钮,滚动条和编辑文本都归零。
运行结果如图所示。
一、图形对象句柄函数
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(窗口句柄)
另外,close all 命令可以关闭所有的图形窗口,clf命令则是清除当前图形窗口的内容,但不关闭窗口。
例3: 建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为300像素点和150像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将显示“Hello,Kebord Key Pressed.”字样。
命令如下:
hf=figure('Color',[0,1,0],'Position',[1,1,300,150],...
'Name','图形窗口示例','NumberTitle','off', 'MenuBar','none', ...
'KeyPressFcn', 'disp(''Hello,Keyboard Key Pressed.'')');
菜单 :
MATLAB可以创建两种菜单:下拉式菜单和上下文(即弹出式)菜单。
在GUIDE窗口中,单击Tools→Menu Editor…选项、或者单击工具栏中的菜单编辑器图标 。在打开的菜单编辑器中,单击 新菜单图标,选中Untitled1菜单项。
Menu Bar选项卡
(1)Label:显示菜单项的标识字符串,在标识字符串中的某字母前加&字符则定义一个快捷键,由〈Alt〉键+该字符来激活。
(2)Tag:菜单项的标识项。
(3)Accelerator:定义菜单项的热键,与〈Ctrl〉键组合使用。
(4)Separator above this item:在当前菜单项前是否显示一个分隔符,默认是不显示。
(5)Check mark this item:在当前菜单项前是否显示校验标记,默认是不显示。
(6)Enable this item:设置菜单项使能状态,默认是使能。
(7)Callback:设置菜单回调函数。
(8)More options:设置菜单属性。单击该按钮,可打开菜单的属性设置对话框。
Context Menus选项卡用于创建上下文(弹出式)菜单,多数是用鼠标右键单击某个图形对象时,在屏幕上弹出的菜单。
这种菜单出现的位置是不固定的,而且总是和某个图形对象的UIContextMenu属性相联系。 先创建上下文菜单,再将图形对象的UIContextMenu属性设置为菜单的标记。
另外,用户可以使用或保留图形窗口标准菜单。
在GUI设计窗口编辑区的空白处双击鼠标(不要选择任何控件),打开图形窗口的属性列表,设置Menu Bar属性为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)的绘图功能。
创建菜单
打开菜单编辑器Menu Editor →上下文菜单Context Menus →点击Untitled_1 →将UIContextMenu Property里的Tag修改为tu →点击UIContextMenu里的Callback的View →编辑M文件,添加如下程序内容:
[x,map]=imread('flower.jpg');
imshow(x)
点击菜单编辑器Menu Editor的New Menu Item,→添加菜单子项sin(x) →将UIContextMenu Property里的属性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)曲线。
点击菜单编辑器Menu Editor的New Menu Item,→添加菜单子项cos(x) →将UIContextMenu Property里的属性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)按钮的属性编辑器Property Inspercter,将其String属性改为Run;属性UIContextMenu的属性值改为tu,其他不变。
回调函数设置
在控件Run上单击右键→View Callbacks,在函数function run_Callback(hObject, eventdata, handles)后面添加如下程序:
[x,map]=imread('flower.jpg');
imshow(x)
这样当用户点击Run控件时,界面就会默认地显示一张图片
保存并运行GUI
单击工具栏的运行按钮,按照提示保存后,运行并验证程序功能。
继续在例4中添加一个菜单,改变背景颜色,若不合适就返回原来的颜色
打开菜单编辑器Menu Editor →菜单 Menu Bar →点击Untitled_1 →将UIMenu Property里的Tag修改为color0
点击菜单编辑器Menu Editor的New Menu Item,→添加菜单子项rr →将UIMenu Property里的属性Label修改为rr→属性Tag修改为rr →点击Callback后的View →编辑M文件,function rr_Callback(hObject, eventdata, handles)
添加如下程序内容:
set(gcf,'color','r')
点击菜单编辑器Menu Editor的New Menu Item,→添加菜单子项g1 →将UIMenu Property里的属性Label修改为g1→属性Tag修改为g1→点击Callback后的View →编辑M文件,function g1_Callback(hObject, eventdata, handles)
添加如下程序内容:
set(gcf,'color',‘g')
点击菜单编辑器Menu Editor的New Menu Item,→添加菜单子项re →将UIMenu Property里的属性Label修改为re→属性Tag修改为rr →点击Callback后的View →编辑M文件,function kt8_1_OpeningFcn(hObject, eventdata, handles, varargin)添加如下程序内容:
xx=get(gcf,'color');
handles.xx=xx;
在function re_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’)
设置文本字符串、坐标轴或控件的字体。参数同颜色设置
打印预览
printpreview
当前图形窗口的打印预览对话框
打印设置
printdlg
当前图形窗口的打印对话框
函数功能
函数格式
说明
帮助
helpdlg(‘string’,‘DTitle’)
显示帮助信息对话框。参数string为信息对话框,参数DTitle为对话框标题
错误信息
errordlg(‘string’,‘DTitle’)
显示错误信息对话框。参数同帮助对话框
信息提示
msgbox(‘string’,‘DTitle’,‘icon’)
显示信息提示对话框。参数icon用于指定图标,有none(默认,无图标)、error_help、warn、custom(用户自定义)四种
问题提示
questdlg(‘string’,‘DTitle’, ‘str1’, ‘str2’, ‘str3’, ‘default’)
显示问题提示对话框。参数str1、str2、 str3代表三个按钮,default必须是这三个按钮中的一个,表示默认选项
警告信息
warndlg(‘string’,‘DTitle’)
显示警告信息对话框
进程条
waitbar(x ,‘DTitle’)
以图形方式显示运算或处理的进程。参数x为进程的比例长度,必须在0~1之间;参数DTitle为进程条标题
waitbar(x ,‘h’)
在同一进程条中,显示进程的变化。参数h为进程条的句柄。常用在循环语句中
变量输入
inputdlg(prompt ,DTitle,
line ,def ,‘resize’)
显示变量输入对话框。参数prompt定义输入窗口及显示信息,DTitle为对话框标题,line定义每个窗口的行数,def为输入的数据,resize定义对话框大小是否可调,可选on或off
将例4中的stop按钮上添加一个停止对话框
编辑M文件function stop_Callback(hObject, eventdata, handles)添加如下程序内容:
hr=questdlg('亲,你要停止吗?','stop','no','yes',1)
if hr=='yes'
close
else
end
例5:做一个进程条,显示进程速度,进程显示完后,自动关闭
clear
clc
h=waitbar(0,正在计算,请等待.....')
for i=1:10000
waitbar(i/1000,h)
end
close(h)
MATLAB图形用户界面设计
1. 建立用户菜单
要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立一级菜单项和子菜单项。
建立一级菜单项的函数调用格式为:
一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)
建立子菜单项的函数调用格式为:
子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,…)
2. 快捷菜单
快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。这种菜单出现的位置是不固定的,而且总是和某个图形对象相联系。
在MATLAB中,可以使用uicontextmenu函数和图形对象的 UIContextMenu属性来建立快捷菜单,具体步骤为:
(1) 利用uicontextmenu函数建立快捷菜单。
(2) 利用uimenu函数为快捷菜单建立菜单项。
(3) 利用set函数将该快捷菜单和某图形对象联系起来。
例6: 绘制曲线y=2sin(5x)sinx,并建立一个与之相联系的快捷菜单,用以控制曲线的线型和曲线宽度。
x=0:pi/100:2*pi;
y=2*sin(5*x).*sin(x);
hl=plot(x,y);
hc=uicontextmenu; %建立快捷菜单
hls=uimenu(hc,'Label','线型'); %建立菜单项
hlw=uimenu(hc,'Label','线宽');
uimenu(hls,'Label','虚线','Call','set(hl,''LineStyle'','':'');');
uimenu(hls,'Label','实线','Call','set(hl,''LineStyle'',''-'');');
uimenu(hlw,'Label','加宽','Call','set(hl,''LineWidth'',2);');
uimenu(hlw,'Label','变细','Call','set(hl,''LineWidth'',0.5);');
set(hl,'UIContextMenu',hc); %将该快捷菜单和曲线对象联系起来
程序运行后,若将鼠标指针指向线条并单击右键,则弹出快捷菜单。
1.建立控件对象
MATLAB提供了用于建立控件对象的函数uicontrol,其调用格式为:
对象句柄=uicontrol(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)
其中各个属性名及可取的值和前面介绍的uimenu函数相似,但也不尽相同,下面将介绍一些常用的属性。
例7:在一个图形窗口中绘制一个正弦曲线,并设置一个文本框,通过颜色选择对话框设置曲线及文本框内文字的颜色。
跟我练:
本例用到了函数uisetfont,其调用格式:
h=uisetfont(h1,'title')
利用函数uisetcolor设置颜色对话框,其调用格式:
hc=uisetcolor(h,’title’)
利用函数设置控件:
hm=uicontrol(Hf,'PropertyName1',value1,'PropertyName2',value2,...) 。
程序内容:
clear
hf=figure('position',[300 100 500 400],'name','uicontrol1','numbertitle','off');
ha=axes('position',[0.4 0.1 0.5 0.5],'box','on');
%设置曲线颜色
x=0:0.01:2*pi;
y=sin(x);
h1=plot(x,y);
hc=uisetcolor(h1,'选择曲线颜色');
%设置字体及颜色
htt=uicontrol(hf,'style','text','string','练习练习?','position',[80 120 100 60]);
hc=uisetcolor(htt,'选择字体颜色');
htt1=uisetfont(htt,'字体选择');
例8、本例实现在界面上不断显示一系列的图片
跟我练:
1、利用imread函数从当前路径或搜索路径下读取图片文件。
2、利用imshow函数显示图片
3、利用pause函数控制图片显示的频率。
4、界面设计
(1)新建一个GUI界面
在MATLAB操作桌面上,单击File → new → GUI选项,选择Blank GUI(Default)模板,单击“OK”按钮,打开GUI设计窗口。
(2)添加控件
用鼠标从GUI设计窗口的组件面板中拖动坐标轴(Axes)和2个命令按钮(pushbutton)控件。
(3)排列控件
选中两个命令按钮(pushbutton)控件,使用几何位置排列工具,排列图标。
(4)设置控件属性
双击需要属性设置的控件,打开对象属性检查器设置控件属性。
“图片显示”按钮:String属性修改为“图片显示”,Tag属性修改为“show”,FontUnits属性改为normalized,FontWeight属性改为bold,FontSize属性改为0.3。其他为默认值。
“STOP”按钮:String属性修改为“STOP”,Tag属性修改为“stop”,FontUnits属性改为normalized,FontWeight属性改为bold,FontSize属性改为0.3,其他为默认值。界面布置如图所示:
(5)回调函数设置
在“图片显示”按钮上点击右键,下拉菜单选择View CallBacks → CallBack(回调函数),
在函数function show_Callback(hObject, eventdata, handles)后面添加如下程序:
[X,map]=imrea d('pdh1.jpg');
X2=imread('pdh2.jpg');
k=1;
for n=1:4
imshow(X,map)
pause(1)
imshow(X2)
pause(1)
end
在“STOP”按钮上点击右键,下拉菜单选择View CallBacks → CallBack(回调函数),
在函数function stop_Callback(hObject, eventdata, handles)后面添加如下程序:
close
6、 保存并运行GUI
单击工具栏的运行按钮,按照提示保存后,运行并验证程序功能。
运行程序,点击“图片显示”按钮,运行结果如图所示。
(二)、自己练习
1、使用matlab7的帮助系统学习图形对象的Name和NumberTitle属性,创建一个图形,绘制曲线,其中。修改前边所题的两个属性,使得图形的标题为“图形窗口”。
2、编制一个程序,使得“图形”窗口的默认底色为橘黄色,默认的线宽为4个像素,并绘制图形。
3、使用matlab7的帮助系统学习Axes对象的CurrentPoint属性的使用方法,并使用该属性创建一个坐标轴对象,在该坐标轴内用线将连续的鼠标单击连接。使用waitforbuttonpress命令等待用户的鼠标单击,并在每次单击之后刷新图形,当按键盘上的任意键时终止程序。
4、创建一个GUI,使用一个弹出式控件来选择GUI的底色。给该GUI添加一个菜单,该菜单有2个子菜单,可以选择颜色和线型。
5、创建一个GUI,绘制曲线,该GUI将提示用户输入a,b,c,的值,并输入x的取值范围。
6、设计一个表现渐进过程的进程条。
7、不使用按钮组,建立三个具有互斥功能的单选按钮。互斥功能就是按下一个按钮,另外两个按钮弹起。
8、设计一个带有绘图、操作和退出菜单的图形用户界面,其中“绘图”菜单中有“正弦曲线”和“余弦曲线”两个子菜单,分别控制在图形窗口画出正弦和余弦曲线;“操作”菜单中有“添加网格”和“清除网格”两个子菜单,用于添加和清除网格。单击“退出”菜单出现一个问题提示对话框,有“是”,“否”两个按钮,单击“是”按钮退出系统,单击“否”按钮不进行任何操作。
9、设计图形用户界面,在列表框中选择函数类型(默认是正弦函数)后,单击“绘制图形”按钮,绘制出函数曲线,单击“清除图形”按钮,清除曲线,但保留坐标轴。
10、设计图形用户界面。在幅值、频率输入框中输入数值后,单击“绘制图形”按钮,绘制出正弦曲线;单击“清除图形”按钮,清除曲线,保留坐标轴。如果没有输入幅值或频率数值就单击“绘制图形”按钮,不能绘制图形,并弹出错误对话框。
11、仿真x(t)=sin(t)sin(10t) 的波形。
12、设计一个数字电路的8线----3线编码器,并Simulink仿真。
13、练习书上例7-3
14、建立阶跃信号 u(t-2) 积分运算仿真模型,并观察信号波形。
15、仿真y(t)=sin(t)-sin(2t)的波形。
16、仿真函数sin(x)e-x 的波形。(提示:使用User-Defined Functions模块库下的Fcn
展开阅读全文