36MATLAB课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLAB课程设计报告模板《MATLAB课程设计》报告设计题目:函数的定积分与图像的保存学生姓名:陈秀学生学号:2009045444014专业班级:09通信工程(师范)答辩时间:2011年6月3日指导教师:冯明库广东技术师范学院电子与信息学院一、设计目的及意义运用函数quad8求已知函数在不同上下限内的定积分,并在坐标轴上显示出函数图形,利用这种方法有利于我们更加方便的计算定积分,且准确地画出函数图像。二、设计任务及指标(1)运用函数quad8求y=sin(x)^2在不同的区间的积分值;(2)在坐标轴画出函数y=sin(x)^2的图像;(3)实现保存函数图像的功能。三、设计过程3.1设计主界面介绍建立一个默认的图形用户界面,保存为jifen.fig文件,在布局编辑器中布置控件:(1)建立一个坐标轴对象,显示函数图像;(2)建立三个按钮,分别用来求函数积分,保存图像和关闭程序;(3)建立二个可编辑文本框,分别用来输入积分的上下限a和b;(4)建立五个静态文本框,显示相应控件的提示和积分结果;(5)建立一个panel控件。界面设计如图1所示图1控件布局设置控件的相关属性:(1)设置三个按钮的Tag标识分别为:jifen_pushbutton,close_pushbutton,save_pushbutton;(2)设置两个可编辑文本框的Tag的标识分别为:a_edit,b_edit,用来输入积分的上下限;(3)设置界面最底下的静态文本标签Tag标识为jifen_text,用来显示积分结果。最终界面显示如图2所示图2最终界面显示3.2添加菜单3.2.1添加文件菜单建立一级菜单“文件”,在其下设置两个子菜单“积分”和“退出”。“积分”的Tag设置为jifen_menu,“退出”的Tag设置为close_menu。3.2.2添加选择菜单建立一级菜单“选择”在其下设置三个子菜单“网格”,“边框”,“颜色”(1)在“网格”下设置二个三级菜单“显示”,“隐藏”,“显示”的Callback设置为gridon,“隐藏“设置”为gridoff;(2)在“边框”下设置二个三级菜单“显示”,“隐藏”,“显示”的Callback设置为boxon,“隐藏“设置”为boxoff;(3)在“颜色”下设置三个三级菜单“蓝色”,“黄色”,“绿色”,“蓝色”的Callback设置为set(gcf,'Color','b'),“黄色”的Callback设置为set(gcf,'Color','y');“绿色”的Callback设置为set(gcf,'Color','g')。如图3所示图3添加菜单3.3编写代码(1)赋予a,b初始值functionjifen_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstojifen(seeVARARGIN)%Choosedefaultcommandlineoutputforjifenset(handles.b_edit,'String',0);set(handles.a_edit,'String',1);handles.output=hObject;(2)运用函数quad8求函数在不同上下限内的定积分,其中a,b通过编辑文本框输入functionjifen_pushbutton_Callback(hObject,eventdata,handles)%hObjecthandletojifen_pushbutton(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)a=str2num(get(handles.a_edit,'String'));b=str2num(get(handles.b_edit,'String'));dx=0.01;x=a:dx:b;y=sin(x).^2;ff=inline('sin(x).^2','x');q8_ax=quad8(ff,a,b);set(handles.jifen_text,'String',num2str(q8_ax));(3)在坐标轴上画出函数图形plot(x,y,'r');legend('f(x)',3);title('sin(x).^2','Fontsize',10,'FontWeight','bold');(4)赋予“保存”键保存坐标轴上图像的功能,并且图像可以保存为jpg和bmp的格式functionpushbutton3_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)new_f_handle=figure('visible','off');new_axes=copyobj(handles.axes1,new_f_handle);%axes1是GUI界面绘图的坐标系set(new_axes,'units','default','position','default');[filename,pathnamefileindex]=uiputfile({'*.jpg';'*.bmp'},'savepictureas');if~filenamereturnelsefile=strcat(pathname,filename);switchfileindex%根据不同的选择保存为不同的类型case1print(new_f_handle,'-djpeg',file);case2print(new_f_handle,'-dbmp',file);endenddelete(new_f_handle);(4)赋予菜单栏中“积分”,“退出”功能退出:functionclose_menu_Callback(hObject,eventdata,handles)Close积分:functionjifen_menu_Callback(hObject,eventdata,handles)jifen_pushbutton_Callback(hObject,eventdata,handles)四、结论及分析(1)主界面图4主界面(2)输入a,b,运行结果图5试运行(3)运用图像保存功能图6图像保存保存结果:图7保存的图像五、设计体会通过这次课程设计,我进一步了解MATLAB的程序设计过程,比较深层次地认识可视化图形用户界面设计的方法以及好处,并且复习了之前学习的MATLAB基础知识,虽说此次实训对我的难度较大,但也是一次很好的锻炼机会参考文献:[1]陈垚光,毛涛涛,王正林,王玲编著.精通MATLABGUI.北京:电子工业出版社,2008.2.程序清单:functionvarargout=jifen(varargin)%JIFENM-fileforjifen.fig%JIFEN,byitself,createsanewJIFENorraisestheexisting%singleton*.%%H=JIFENreturnsthehandletoanewJIFENorthehandleto%theexistingsingleton*.%%JIFEN('CALLBACK',hObject,eventData,handles,...)callsthelocal%functionnamedCALLBACKinJIFEN.Mwiththegiveninputarguments.%%JIFEN('Property','Value',...)createsanewJIFENorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforejifen_OpeningFunctiongetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.Allinputsarepassedtojifen_OpeningFcnviavarargin.%%*SeeGUIOptionsonGUIDE'sToolsmenu.ChooseGUIallowsonlyone%instancetorun(singleton).%%Seealso:GUIDE,GUIDATA,GUIHANDLES%Copyright2002-2003TheMathWorks,Inc.%Edittheabovetexttomodifytheresponsetohelpjifen%LastModifiedbyGUIDEv2.502-Jun-201116:17:04%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@jifen_OpeningFcn,...'gui_OutputFcn',@jifen_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%---Executesjustbeforejifenismadevisible.functionjifen_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstojifen(seeVARARGIN)%Choosedefaultcommandlineoutputforjifenset(handles.a_edit,'String',0);set(handles.b_edit,'String',1);handles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesjifenwaitforuserresponse(seeUIRESUME)%uiwait(handles.f

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功