MATLAB GUI设计作业

上传人:yo****e 文档编号:74945880 上传时间:2022-04-14 格式:DOCX 页数:11 大小:580.78KB
收藏 版权申诉 举报 下载
MATLAB GUI设计作业_第1页
第1页 / 共11页
MATLAB GUI设计作业_第2页
第2页 / 共11页
MATLAB GUI设计作业_第3页
第3页 / 共11页
资源描述:

《MATLAB GUI设计作业》由会员分享,可在线阅读,更多相关《MATLAB GUI设计作业(11页珍藏版)》请在装配图网上搜索。

1、MATLAB课程设计设计名称:基于MATLAB的FFT-信号分析仪的实现研 究 生: 李 文 哲 指导教师: 李 彩 虹 学科专业: 计算机技术 完成时间: 2013年1月14日 MATLAB 是一套高性能的数值计算和可视化的科技应用软件。它集高效的数值分析、完备的信号和图形处理、功能丰富的应用工具箱为一体,构成了一个方便快捷,界面友好的用户环境,是一种适应多种硬件平台的数学计算工具,它的出现给各课程的计算机辅助教学带来了福音。特别是他的集成图形用户界面GUIDE(Graphical User Interface Development Environment),包含了窗口菜单、对话框、按钮和

2、文本等各种控件的用户界面,用户通过键盘或鼠标操作,就可以设计出具有自己独特风格的图形界面,再通过编写回调函数就可以实现GUI 与用户之间的交互,为教学课件的制作提供了极大的方便,GUIDE 程序设计分两步进行,一是静态图形界面制作,二是控件回调函数编程。1 静态图形界面制作在matlab 的命令窗口中键入“guide”命令,启动GUIDE 的GUI 编辑器,GUI 控制面板包括了所有的图形界面控件uicontrol,如按钮(Push Butter)、滑动条(Slider)、单选按钮(Radio Butter)、复选框(Check box)、文本框(Edit Text)、文本标签(Ststic

3、Text)、下拉菜单(Popup Menu)、下拉列表框(List box)、双位按钮(Toggle Butter)、坐标轴(Axes)等,用户选中需要的控件,拖移到空白处,即可创建出相应的控件,并通过拖拉可调整其大小大小,如图1 所示。图1每个控件都有自己的属性Style,属性Style 决定控件的类型,将鼠标移至相应的控件上双击,就可以打开属性框,每个控件均有很多项属性,但主要的有:“string” 用来定义控件的显示字符;“Tag”是控件的重要属性,是对控件进行编程和访问时的标识名称,每个控件创建时都会由开发环境自动生成一个标识,在程序设计中为了编辑、记忆和维护的方便,用户要修改成自己好

4、记忆的字符串,在编写回调函数Callback 时由此标识来识别;“name”是标题属性;“BackgroundColor”是背景颜色设置,按用户风格设定其值。图1 中各控件的“string”属性和“Tag”属性分别定义如下:三个坐标的“Tag”标识分别为:axes10、axes1、axes2;两个按钮的“Tag”标识分别为:按钮“冲激响应”的“Tag”标识为pushbutton1,按钮“阶跃响应” 的“Tag”标识为pushbutton2;编辑文本框的“Tag”标识为RLC,用来接收键盘输入电阻、电感及电容的值。按照自己的构想将需要的控件位置摆放合适,属性设置好后保存GUI 文件,文件名取为t

5、est,matlab 将用户创建的GUI 的所用信息保存在test.fig 和test.m 两个文件中,其中.fig 为二进制文件,用来存放搭建GUI 界面所需的所有图形控件的完整描述信息(包括控件属性);.m 文件用来存放GUI 程序响应特定事件时调用的函数,包含了运行GUI 所需的所有程序代码,包括GUI 控件的回调函数Callback 框架,.m 决定GUI 的行为,他控制GUI 中控件如何响应用户操作,这两个文件是互相影响的。系统自动生成的test.m 文件代码中有三个关键函数需要用户编写程,分别说明如下:OpeningFcn 函数OpeningFcn 函数是GUIDE 在.m 文件中

6、自动生成的函数之一,其名字与文件名相同,如文件名为test,则OpeningFcn 函数的函数名为test_OpeningFcn,OpeningFcn 中的代码在运行GUI 并使其可视化之前执行,因此该函数通常用来实现用户访问GUI 之前所需的各种数据的初始化。CreateFcn 函数GUIDE 在为GUI 自动生成.m 文件中,自动为每一个控件生成CreateFcn 函数,函数名由控件的“Tag”属性决定,主要用来存放相应控件的初始化函数。Callback 函数GUIDE 在为GUI 自动生成.m 文件中,为每一个控件生成相应的回调函数Callback 定义行代码,控件对用户的响应控制,需要

7、在回调函数中添加相应的代码来实现。控件回调函数的函数名由控件的“Tag”属性决定。回调函数的编写是GUIDE 设计的重点,所有句柄对象都有如下三个回调函数:ButtonDownFcn(),鼠标左键在对象上单击时执行的回调函数;CreateFcn(),对象创建时执行的回调函数;DeleteFcn(),对象删除时执行的回调函数。回调都是可以在命令窗口中可执行的字符串,当属性激活时,它传给eval 函数来执行。回调编程可以采用不同的形式或不同的调用方式来执行相应的程序。在编写回调函数时句柄图形函数,常用的几个句柄函数为:set 设置对象属性;get 获取对象属性;gcf 获得当前图形的句柄;gca

8、获得当前坐标轴的句柄;gco 获得当前对象的句柄;Axes 创建坐标轴对象;Image 创建图形对象等。2 编程控制GUI在静态图形界面设计好后,用户可以通过鼠标或键盘激活这些图形对象,使计算机执行相应的动作,这些动作的执行通过回调函数Callback 来实现,matlab guide 编程主要考虑的是界面函数如何通过回调函数来实现,以及用什么样的方法比较方便快捷。表1 中test.m 代码中只有各个控件、菜单的回调函数原型和注释,并没有实现功能的函数体,要实现具体的功能调用需要自己编写添加程序。2.1 初始化程序的编写初始化图形界面是通过函数Openingfig 实现的。Openingfig

9、 函数调用与.m 文件对应的.fig 文件来初始化图形界面。在这一过程中还存在隐含调用.fig 的CreatFcn 函数,但这一过程无法使用输入参数,也就是说要用输入参数设置图形界面元素的一些特性,还必须编写自己的初始化函数。在本设计实例中,需要在坐标轴ases10 的位置显示电路图,需要为“Tag”标识为RLC 的编辑文本框设置R、L、C 初始值,其初始化程序分别为:function test_OpeningFcn(hObject, eventdata, handles, varargin)I=imread(dl.bmp,bmp); % 读入图形文件dl.bmpaxes(handles.ax

10、es10); % 获得坐标轴axes10 的句柄image(I);axis off % 显示电路图function RLC_CreateFcn(hObject, eventdata, handles)set(gcbo,String,1 1 1); % 为R、L、C 设初始值if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);end2.2 回调函数Callback 的编写回调函数的编写,可以把该控件的函数代码

11、直接写在“Callback”中,也可以把函数代码放在一个自定义的.M 文件中,而在Callback”中只将其文件名写上即可。不管采用哪种方法,回调函数编写的一个重要的技巧就是通过set、get 语句对控件的属性进行获取、设置,以及完成相关数据的传递、保存、获取,这一点在下面的程序段中得到了很好的体现。在本设计实例中,当按下“冲激响应”按钮时,要在坐标轴ases1 的位置显示冲激响应曲线,当按下“阶跃响应”按钮时,要在坐标轴ases2 的位置显示阶跃响应曲线,所以要分别为pushbutton1_Callback 和pushbutton2_Callback 编写回调函数,程序代码分别为:funct

12、ion pushbutton1_Callback(hObject, eventdata, handles)m= str2num(get(handles.RLC,String)R=m(1);L=m(2);C=m(3);a=L*C R*C 1;b=1;axes(handles.axes1);x=impulse(b,a);plot(x,linewidth,2); grid on; hold on;function pushbutton2_Callback(hObject, eventdata, handles)m= str2num(get(handles.RLC,String)R=m(1);L=m(

13、2);C=m(3); a=L*C R*C 1; b=1;y=step(b,a);axes(handles.axes2)plot(y,linewidth,2); grid on; hold on;把上述初始化程序及回调函数加入表1 的相应位置,然后运行程序,并输入R、L、C 的值(若分别键入1 3 1),按下“冲激响应”按钮,则输出冲激响应波形,按下“阶跃响应”按钮,则输出阶跃响应波形,运行结果如图2 所示。图23 结束语通过对matlab guide 图形用户界面的设计实例,展示了人机交互式图形用户界面及其参数的可调控性。在实际设计制作中要解决的几个关键技术问题是:利用各控件的属性进行数据的保

14、存、传递;通过句柄访问控件并进行数据的获取和传递;编写各控件的回调函数。回调函数的编写不可能一蹴而就,需要反复的调试、修改和运行才能够使程序得以正确运行。附录:test.m文件编程语句function varargout = test4(varargin)% TEST4 MATLAB code for test4.fig% TEST4, by itself, creates a new TEST4 or raises the existing% singleton*.% H = TEST4 returns the handle to a new TEST4 or the handle to%

15、the existing singleton*.% TEST4(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in TEST4.M with the given input arguments.% TEST4(Property,Value,.) creates a new TEST4 or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the

16、GUI before test4_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to test4_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDAT

17、A, GUIHANDLES % RLC the above text to modify the response to help test4 % Last Modified by GUIDE v2.5 12-Jan-2013 21:05:56 % Begin initialization code - DO NOT RLCgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, test4_OpeningFcn, . gui_Outpu

18、tFcn, test4_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT RLC % - Executes j

19、ust before test4 is made visible.function test4_OpeningFcn(hObject, eventdata, handles, varargin)I=imread(dl.bmp,bmp);%dlaxes(handles.axes10); %axes10image(I);axis off % This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version

20、 of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to test4 (see VARARGIN) % Choose default command line output for test4handles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes test4 wait for user response (se

21、e UIRESUME)% uiwait(handles.figure1); % - Outputs from this function are returned to the command line.function varargout = test4_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a

22、 future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; % - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)m=str2num(get(handles.edit5

23、,String)R=m(1);L=m(2);C=m(3);a=L*C R*C 1;b=1;axes(handles.axes1);x=impulse(b,a);plot(x,linewidth,2);grid on;hold on;% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % - Executes on

24、 button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)m=str2num(get(handles.edit5,String)R=m(1);L=m(2);C=m(3);a=L*C R*C 1;b=1;y=step(b,a);axes(handles.axes2);plot(y,linewidth,2);grid on;hold on;% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be de

25、fined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) function RLC_Callback(hObject, eventdata, handles)% hObject handle to RLC (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GU

26、IDATA) % Hints: get(hObject,String) returns contents of RLC as text% str2double(get(hObject,String) returns contents of RLC as a double % - Executes during object creation, after setting all properties.function RLC_CreateFcn(hObject, eventdata, handles)set(gcbo,String,1 1 1); %RLC% hObject handle to

27、 RLC (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: RLC controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc & isequal(get(hObject,BackgroundColor), get(0,defau

28、ltUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit5_Callback(hObject, eventdata, handles)% hObject handle to edit5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Hints: get(hObje

29、ct,String) returns contents of edit5 as text% str2double(get(hObject,String) returns contents of edit5 as a double % - Executes during object creation, after setting all properties.function edit5_CreateFcn(hObject, eventdata, handles)% hObject handle to edit5 (see GCBO)% eventdata reserved - to be d

30、efined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,Back

31、groundColor,white);end % - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)filename,pathname=uiputfile(*.bmp;,Save,Undefined.bmp);if isequal(filename,0) str = pathname filename; px=getframe(handles.axes1); %saveas(gcf,str,bmp); ta = getappdata(gcf,Ti

32、mg); imwrite(px.cdata,str,bmp);else disp();end; % hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % - Executes on button press in pushbutton4.function pushbutton4_Callback(hObject,

33、eventdata, handles)filename,pathname=uiputfile(*.bmp;,Save,Undefined.bmp);if isequal(filename,0) str = pathname filename; px=getframe(handles.axes2); %saveas(gcf,str,bmp); ta = getappdata(gcf,Timg); imwrite(px.cdata,str,bmp);else disp();end; % hObject handle to pushbutton4 (see GCBO)% eventdata rese

34、rved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % - Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)axes(handles.axes1);cla;axes(handles.axes2);cla% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!