简易Matlab界面设计报告.doc
《简易Matlab界面设计报告.doc》由会员分享,可在线阅读,更多相关《简易Matlab界面设计报告.doc(18页珍藏版)》请在沃文网上搜索。
1、装 订 线2009-2010学年第 二 学期 物电 学院期末考试卷 MATLAB实用教程 (课程论文等试卷样式)成绩:评语:(考试题目及要求) 本考试要求学生灵活运用Matlab程序设计语言课程中的学习到的相关知识,自拟题目,编制应用程序,实现具有一定难度的应用程序。在程序设计过程中,要注重知识的综合应用,尽量涵盖Matlab程序设计语言课程中较多的知识点;也可以自行学习课本上未涉及的Matlab程序设计语言高级内容,完成相关程序设计。 本考试每人需要提交以下内容:1. 课程论文(包括简介,主要内容,结论,参考文献等),打印稿,电子版; 2. 源程序;3实验报告合订本。简易Matlab界面设计
2、报告一、 设计简介通过熟悉Matlab图形界面的相关控件和属性,设计了一个简易的界面在设计中用M文件编写了部分界面设计,对Matlab程序流程有了大概的了解和掌握,与此同时对用句柄创建图形对象并设计相关属性也有了相应的熟悉。界面设计的主要功能是通过对图形和命令按钮进行简单的编辑,实现界面的一些图形操控操作。二、 设计内容设计一个显示图形曲线的GUI界面,要求通过单选按钮及菜单显示相关图形和动画的界面。1、设计界面 控件设计:在命令窗口输入“Guide”命令,出现可视化的界面开发环境,将界面窗口右边的图形对象面板中的控件拖放到空白窗口中,放置的空间有:1个坐标轴、2个静态文本框、1个面板、6个按
3、钮,设置控件属性。 菜单设计: 在可视化界面环境选择菜单“Tools”“Menu Editor”就会出现菜单编辑器窗口,建立三个主菜单,如下图所示:“Label”栏用来编辑菜单项的名称,“Tag”是标记,“Separator above the item”是分隔符,“Item is checked”是处置是否已选,“Callback”栏用以输入回调函数。 日历和时钟界面设计:使用figure句柄创建图形界面,应用unicontrol句柄创建控件,创建日历及时钟界面,显示当前的日期、时间,程序如下:日历:function Untitled_14_Callback(hObject, eventda
4、ta, handles)%function CalendarTable;% calendar % Example:% CalendarTable;S=datestr(now);y,m,d=datevec(S);% d is day% m is month% y is yearDD=Sun,Mon,Tue,Wed,Thu,Fri,Sat;close allfigure;for k=1:7;uicontrol(gcf,style,text,.unit,normalized,position,0.02+k*0.1,0.55,0.08,0.06,.BackgroundColor,0.6 0.8 0.2
5、,ForegroundColor,0.9 0.5 0.1,.String,DD(k),fontsize,18,fontname,times new roman);endh=1;ss=b;qq=eomday(y,m);for k=1:qq;n=datenum(y,m,k);da,w = weekday(n);if k=d;ss=r;enduicontrol(gcf,style,push,.unit,normalized,position,0.02+da*0.1,0.55-h*0.08,0.08,0.06,.BackgroundColor,0.7 0.2 0.2,ForegroundColor,r
6、,.String,num2str(k);ss=b;if da=7;h=h+1;endenduicontrol(gcf,style,push,.unit,normalized,position,0.6,0.66,0.12,0.08,.BackgroundColor,0 1 0.8,ForegroundColor,0.1 0.9 0.5,.String,Time:,fontsize,18,fontname,times new roman);Tq=uicontrol(gcf,style,push,.unit,normalized,position,0.74,0.66,0.17,0.08,.Backg
7、roundColor,0.8 0.5 0.2,ForegroundColor,0.1,0.9,0.9,.fontsize,18,fontname,times new roman);sq=The Calendar Of 2010/6 ;uicontrol(gcf,style,push,.unit,normalized,position,0.14,0.86,0.37,0.08,.BackgroundColor,0 1 1,ForegroundColor,1 0 0,.fontsize,14,fontname,times new roman,string,sq);trywhile 1setq,Str
8、ing,datestr(now,13);pause(1);endend 时钟:function Untitled_17_Callback(hObject, eventdata, handles)h=figure(menubar,none,.color,white,.position,200 200 320 360,.name,CLOCK);e1=uicontrol(parent,h,.style,edit,.fontsize,12,.position,110 20 120 30);b1=uicontrol(parent,h,.style,text,.string,12,.fontsize,12
9、,.position,156 275 20 20);b2=uicontrol(parent,h,.style,text,.string,9,.fontsize,12,.position,60 175 20 20);b3=uicontrol(parent,h,.style,text,.string,6,.fontsize,12,.position,156 75 20 20);b4=uicontrol(parent,h,.style,text,.string,3,.fontsize,12,.position,260 175 20 20);s1=0:pi/1000:2*pi;hl=plot(cos(
10、s1),sin(s1),b-);time=datestr(now);set(e1,string,time(1:11);sita1=pi/2-str2num(time(19:20)*pi/30;sita2=pi/2-str2num(time(16:17)*pi/30+sita1/60;sita3=pi/2-str2num(time(13:14)*pi/6+sita2/12;w1=-pi/30;w2=-pi/1800;w3=-pi/108000;pausetime=1;axis off;axis equalhold onplot(0,0,or);%设置刻度for n=pi*2:-pi/30:pi/
11、30a1=0.95*cos(n):0.05*cos(n)/2:cos(n);b1=0.95*sin(n):0.05*sin(n)/2:sin(n);plot(a1,b1,r-);endfor n=pi*2:-pi/6:pi/30a1=0.9*cos(n):0.1*cos(n)/2:cos(n);b1=0.9*sin(n):0.1*sin(n)/2:sin(n);plot(a1,b1,r-);end%设置指针while 1x1=0:0.75*cos(sita1)/2:0.75*cos(sita1);y1=0:0.75*sin(sita1)/2:0.75*sin(sita1);x2=0:0.6*c
12、os(sita2)/2:0.6*cos(sita2);y2=0:0.6*sin(sita2)/2:0.6*sin(sita2);x3=0:0.45*cos(sita3)/2:0.45*cos(sita3);y3=0:0.45*sin(sita3)/2:0.45*sin(sita3);hp1=plot(x1,y1,r-);hp2=plot(x2,y2,r-,linewidth,2);hp3=plot(x3,y3,r-,linewidth,2);sita1=sita1+w1*pausetime;sita2=sita2+w2*pausetime;sita3=sita3+w3*pausetime;pa
13、use(pausetime);delete(hp1);delete(hp2);delete(hp3);endhold off2、回调函数:回调函数需要完成的任务是:单击按钮或菜单显示相应的图形曲线。利用标准回调函数callback来编写触发按钮的事件。 按钮回调函数的编写:在界面中选中单选按钮“视图”,然后选择菜单“View” “Componment Callbacks”“Callback”,则出现相应的各空白Function文件,添加按钮代码如下: 视图:x=0:0.1:5*pi;y1=sin(x);y2=sin(x)+cos(x);plot(x,y1,x,2*y2,*)xlabel(X轴)
14、;ylabel(Y轴);title(函数图形)grid on当单击“视图”按钮时,绘制函数y1=sin(x)与y2=sin(x)+cos(x)的图形。其他按钮与此相同,不在赘述,相关代码见“程序源”。 菜单回调函数的编写:打开菜单编辑器,选中菜单“百变球体”单击“View”,添加代码如下: 百变球体:x,y,z=sphere(45);m=moviein(100);for i=1:100 surf(10*i*x,10*i*y,10*i*z); m(:,i)=getframe; endmovie(m,1);title(百变球体)axis off;3、调试运行:M文件编完以后调试运行,如果发现不正确
15、,则可根据提示进行修改,直到正确为止。运行后的结果为:单击“视图”按钮绘制函数曲线矩阵曲线 百变球体 透明球体 螺旋曲面 布朗运动 饼状球类统计 罗盘图 时钟 日历 三、 设计体会Matlab是一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。它由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运
16、行。通过本次课程设计,使我对GUI的设计和M文件的编写有了进一步的了解,尤其是对可视化图形界面的设计以及使用figure、unicontrol句柄创建图形界面有了更深层次的理解。对课程设计的一般步骤更加明晰。在试验时,虽说过程比较曲折,遇到了很多问题、出现了很对错误、走了许多弯路,但我认为这更是一个学习的好机会,带着问题去看书查资料,极大地提高了学习效率,这是我们在书本上学不到的,只有自己亲身做过才会有的。经过我们的努力做出结果后的那份喜悦别人是无法体会到的,我认为这就是收获,结果不是最重要的,过程才是最美的。在此过程中不仅锻炼了我们独立思考和学习的能力,而且对我们互相学习弥补自己的不足提供了
17、平台,加强了我们的合作精神。在本次实验中,学到了许多的东西,因为之前的课程学得实在是不怎么好,特别是实际的Matlab上机操作,所以在实验进行过程中实在是走了不少的弯路。到现在为止,有些东西还是掌握的不太好,但还好最终将界面设计出来了,并且也能很棒的运行!总体来说我们还是掌握了Matlab许多的知识,这点让我们感到很是欣慰!因为我们自己的学习能力有限,所以在实践时花费了我们许多的时间,效率实在是有点低!这在今后得特别的注意,毕竟学校的要求和社会的是不一样的。还好心血没有白费,最后在完成实验的同时还让我们锻炼了自身实践能力,也学习到了许多的新知识,尤其是在课堂上不可能学到的实战技术。纵观全局,我
18、们可能犯了一个很普遍的错误,那就是将原本并不怎么复杂的东西都整复杂化了,这会很容易让我们在其中迷失方向而不知所措的,所以这点还是最重要的。四、 相关源程序% 单位:物理与电子信息工程学院% 作者:程进功 赵金龙% 学号:200872020106 200872020158% 日期:2010-06-01% 版本:V1.0function varargout = zuoye(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFc
19、n, zuoye_OpeningFcn, . gui_OutputFcn, zuoye_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction zuoye_Opening
20、Fcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);function varargout = zuoye_OutputFcn(hObject, eventdata, handles)varargout1 = handles.output;function Untitled_4_Callback(hObject, eventdata, handles)h0=figure(toolbar,none,. position,200 150 450 400,. name,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 Matlab 界面设计 报告
