毕业设计(论文)-用Matlab编程实现Matlab简易自学系统.doc_第1页
毕业设计(论文)-用Matlab编程实现Matlab简易自学系统.doc_第2页
毕业设计(论文)-用Matlab编程实现Matlab简易自学系统.doc_第3页
毕业设计(论文)-用Matlab编程实现Matlab简易自学系统.doc_第4页
毕业设计(论文)-用Matlab编程实现Matlab简易自学系统.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)报告题目名称:用Matlab编程实现Matlab简易自学系统院系名称:理学院班 级:信科071学 号:学生姓名: 指导教师: 2011年05月用Matlab编程实现Matlab简易自学 系统The Complement of Matlab self-learning systems by Matlab programming院系名称:理学院班 级:信科071学 号:学生姓名: 指导教师: 2011 年 05月中原工学院理学院毕业论文摘 要Matlab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,有其强大的图形编程系统,但初学者很难快速掌握这些强大的功能。因此通过编写一个简单易用的自学系统,通过大量实例和效果演示详细介绍Matlab基本的功能,从而让初学者在短期内快速上手。本文利用Matlab强大的图形编程系统设计出的Matlab简单易用自学系统,包含了大量的实例说明和效果演示,图形并茂从而达到让初学者在最短时间内掌握Matlab最基本的用法的目的。关键词: Matlab,GUI,图形对象,图形用户界面ABSTRACTMatlab is used for algorithm development, data visualization, data analysis and numerical advanced technical computing language and interactive environment, with its powerful graphical programming system, but it is difficult for beginners to grasp these powerful features. So it is my goal to allow beginners to get started quickly in the short term to grasp the most basic function of Matlab by writing a simple self-learning system. In this paper,designing the simple self-learning system makes full use of Matlab powerful graphical programming system.It includs a large number of examples,results presentation and graphics to achieve the object that in the shortest time for beginners to grasp the purpose of the use of basic Matlab.Key Words: Matlab,Gui,Graphic objects,Graphical user interfaceII中原工学院理学院毕业论文目 录1 引 言11.1 Matlab简介11.2 Matlab简易自学系统21.3 学习掌握Matlab要点22 开发工具概述42.1 低级绘图操作42.2 GUI简介53 Matlab简易自学系统63.1 系统特点简介63.2 系统制作过程63.3 功能演示84 总 结10参考文献11致谢12附录13III1 引 言1.1 Matlab简介MATLAB(MatrixLaborator)是MathWorks公司开发科学与工程计算软件;广泛应用于自动控制、数学运算、信号分析、计算机技术、图像信号处理、财务分析、航天工业、汽车工业、生物医学工程、语音处理和雷达工程等行业;国内外高校和研究部门科学研究的重要工具;MATLIB已成为数学计算工具方面事实上的标准。MATLAB有如下功能和特点;1、功能强大;其一、运算功能强大,MATLAB的数值运算要素不是单个数据,而是矩阵,每个元素都可看作复数,运算包括加、减、乘、除、函数运算等;通过MATLAB的符号工具箱,可以解决在数学、应用科学和工程计算领域中常遇到的符号计算问题。其二、文字处理功能强大:MATLAB的Notebook为用户提供了强大的文字处理功能,允许用户从Word访问MATLAB的数值计算和可视化结果。2、人机界面友好,编程效率高;语言规则与笔算式相似,命令表达方式与标准的数学表达式非常相近。解释方式工作的,键入算式无需编译立即得出结果,若有错误也立即做出反应,便于编程者立即改正。3、强大而智能化的作图功能工程计算的结果可视化,使原始数据的关系更加清晰明了;多种坐标系; 能绘制三维坐标中的曲线和曲面。4、可扩展性强;包括基本部分和工具箱两大部分,具有良好的可扩展性,工具箱可以任意增减。5、 Simulink动态仿真功能;MATLAB的Simulink提供了动态仿真的功能,用户通过绘制框图来模拟一个线性、非线性、连续或离散的系统,通过Simulink能够仿真并分析该系统。6、功能丰富的工具箱;MATLAB由基本部分和功能各异的工具箱组成。基本部分是MATLAB的核心,工具箱是扩展部分。工具箱是用MATLAB的基本语句编成的各种子程序集,用于解决某一方面的专门问题或实现某一类的新算法。大量针对各专业应用的工具箱的提供,使MATLAB适用于不同领域。1.2 Matlab简易自学系统Matlab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,有其强大的图形编程系统,但初学者很难快速掌握这些强大的功能。因此通过编写一个简单易用的自学系统,以让初学者快速上手,在短期内掌握Matlab最基本的功能。本文利用Matlab强大的图形编程系统设计出的Matlab简单易用自学系统,包含了大量的实例说明和效果演示,图形并茂从而达到让初学者在最短时间内掌握Matlab最基本的用法的目的。1.3 学习掌握Matlab要点Matlab主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。Matlab简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析,事实上Matlab已经成为当今科学计算的一个标准。那么作为一位刚刚接触Matlab的初学者来时,记住以下几个要点对学习掌握Maltal有很大的帮助。1、在各种数学软件中,为何Matlab功能最为强大? Matlab提供功能强大的工具箱, 且可以直接使用第三方开发的Matlab工具箱及用户自定义工具箱,功能扩展无限制。2、MATLAB按列存储的特性。举例如下:若 A= 3 7 8; 6 2 1; 5 9 4那么访问元素9有2种方法,A(3,2) 和A(6)以max(A)的结果为例说明按列操作,这样就学会了N多未知matlab的命令用法,比如 std(A)等等3、学会利用Matlab自身强大的帮助系统比如要查询正弦函数的名字,只要我们记住sin函数在任何系统中都是这个名字,则利用Matlab帮助系统可以使用下列语句查询:which sin %查询sin函数所在工具箱的名称help 查找的工具箱的名称 %列出该工具箱下所有函数的名称及解释在列表中找出正弦函数的名称即可,然后doc自然对数函数的名称即可查询详细解释及例子。我想这三点对初学者在以后的学习Matlab中定会有很大的帮助。“授人之鱼,不如授人以渔”,只有掌握了学习方法,才能将Matlab真正的掌握。2 开发工具概述2.1 低级绘图操作绘图本来是一项很繁琐的工作,需要确定很多参数,但Matlab高层绘图函数代替用户做了这些工作,给定了参数的默认值,这样就使用户省去了一些细节,用起来很方便。但一旦遇到默认值不能满足实际需要时,就需要用户的干预。低层绘图操作就能解决这个问题。在MATLAB中,用来获取图形、坐标轴和其它图形对象句柄的相关指令包括: l h = gcf %获取当前图形窗口的句柄值;l h = gca %获取当前图形窗口内当前坐标轴的句柄值;l h = gco %获取当前图形窗口内当前对象的句柄值;l h = gco(fh) %返回图形窗口fh中的当前对象的句柄值;在获得图形对象的句柄值后,可以利用该图形对象的句柄获取、修改或删除该图形对象的属性,相关指令包括: l get(h1, color)%返回句柄h1所属对象的颜色值;l set(h1, color, r)%将句柄h1所属对象的颜色设置为红色;l delete(h1) %删除句柄h1所属的图形对象;还可以通过图形对象生成函数来生成图形对象,所有用于生成图形对象的MATLAB函数,都为所生成的图形对象返回一个句柄值。这些函数包括figure,uicontrol,uimenu,plot,mesh和surf等,具体的指令格式为: l hd = line(x,y,z)%line对象句柄生成指令;l hd = surface(x,y,z)%surface对象句柄生成指令;l hd = image(x,y,z)%image对象句柄生成指令;例如在用Matlab编程实现Matlab简易自学系统中,需要对figure1窗口进行更改,指令为:h=gcf;set(h,name,欢迎使用Matlab简易自学系统,color,0.95,0.92,0.90);则窗口界面标题有原来的“Untitle”改为“欢迎使用Matlab简易自学系统”。2.2 GUI简介所谓图形用户界面(Graphical User Interface ,GUI)是有窗口、菜单、对话框等各种图形元素组合成的用户界面、在这种用户界面中,用户的操作既形象生动,又方便灵活,所以当今绝大部分开发环境与应用程序都采用图形用户界面,许多流行的开发工具都可以进行图形用户界面设计。Matlab作为强大的科学计算软件,同样也提供了图形界面设计功能。在Matlab中,基本的图形用户界面对象包括3类:用户界面控件对象(uicontrol)、下拉式菜单对象(uimenu)/和快捷菜单对象(uicontextmenu)。根据这些图形对象,可以设计出界面友好、操作方便的图形用户界面。对MATLAB中的figure、uimenu、uicontextmenu、uicontrol等图形对象及其子对象的生成和属性设置、修改等操作,可以在MATLAB的指令窗口中直接输入相关指令或编写指令式m文件来实现。 和其它面向对象程序设计语言一样,MATLAB提供了简单、方便的GUI设计与开发工具。MATLAB中常用的GUI设计工具包括: l 对象设计编辑器(layout editor)l 菜单编辑器(menu editor)l 对象属性查看器(property inspector)l 位置调整工具(alignment tool)l 对象浏览器(object browser)在MATLAB中,可以通过命令式方式与GUI设计工具中的菜单编辑器Menu Editor两种方法建立菜单。在命令方式下,可以通过函数uimenu来建立下拉式菜单对象,具体调用格式如下: l uimenu(propertyname, propertyvalue,)l uimenu(h, propertyname, propertyvalue,)l h1= uimenu(propertyname, propertyvalue,)l h1= uimenu(h, propertyname, propertyvalue,)例如在用Matlab编程实现Matlab简易自学系统中,建立文本显示框的指令为:str=uicontrol( Style,Text,fontsize,12,position,83 20 pos(3)+5 pos(4)-40); %建立文本框、字体12、位置position x y width heighttline=importdata(32.txt); %读入文本文件outstring,newpos = textwrap(str,tline); %输出文本文件set(str,String,outstring,HorizontalAlignment,left)%控制输出格式3 Matlab简易自学系统3.1 系统特点简介Matlab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,有其强大的图形编程系统,但初学者很难快速掌握这些强大的功能,因此该自学系统使用Matlab提供的强大的图形用户界面和低级绘图操作功能,以一本学习Matlab经典的教材为蓝本,运用Matlab自带的图形用户界面功能和低级绘图操作指令编写而成。该自学系统包括以下选项:Matlab入门、基本运算、程序设计、图形功能、高级绘图、数据处理、微积分运算、符号运算、统计工具箱和帮助等菜单。在每个不同的菜单中都包含有相应的若干个子菜单。子菜单中的内容都是最基本、使用的一些Matlab命令,这些都是初学者掌握Matlab必不可少的知识。 本系统一大特点就就是:充分利用Matlab强大的图形编程系统而设计出的Matlab简单易用自学系统,其中包含了大量的实例说明和效果演示,图形并茂从而达到让初学者在最短时间内掌握Matlab最基本的用法的目的。3.2 系统制作过程在设计简易自学系统的每个子菜单选项过程中,利用图形界面设计功能和低层绘图操作指令。首先是利用菜单编辑器设计菜单栏;单击对象设计编辑器界面的工具条上的“Menu Editor”(菜单编辑器)按钮或通过选择菜单Tools下的子菜单Menu Edit,可以创建和修改下拉式菜单或内容式菜单。其次是利用Property Inspector(属性检查器)设置属性;属性检查器可以查看每个图形对象的属性,也可以修改和设置图形对象的属性值。 在MATLAB中,也可以通过命令式方式与GUI设计工具中的菜单编辑器Menu Editor两种方法建立菜单。在命令方式下,可以通过函数uimenu来建立下拉式菜单对象。例如在设计图形功能/二维图形/图形绘制选项时具体编程如下:clear; clc;s1 = get(0,ScreenSize)% the size of the screen.sw=1024;sh=768;pos0=(s1(3)-sw)/2 (s1(4)-sh)/2 sw shpos=pos0(1) pos0(2) pos0(3)/3 pos0(4)/1.05;set(gcf, Position, pos0);t=linspace(0,pi,36);%对打开窗口进行设计x1=sin(t);x2=sin(2*t);x3=sin(3*t);plot(t,x1); %根据向量t,x1绘制二维曲线图;hold on;plot(t,x2); %根据向量t,x2绘制二维曲线图;plot(t,x3); %根据向量t,x3绘制二维曲线图;str=uicontrol( Style,Text,fontsize,12,position,13 20 pos(3)+25 pos(4)-90);tline=importdata(45.txt);outstring,newpos = textwrap(str,tline);set(str,String,outstring,HorizontalAlignment,left); %设计显示文本框通过类似方法设计出“Matlab简易自学系统”界面。3.3 功能演示使用“Matlab简易自学系统”步骤如下:第一步:点击Matlab运行按钮,弹出欢迎界面:第二步:选择相应的菜单选项,例如依次选择图形功能/二维图形/图形绘制选项:第三步:会显示出绘制图形的基本指令及其说明和图像,显示效果如下:4 总 结第一,通过写设计“Matlab简易自学系统”,首先让我对Matlab有了比较深入的理解,并对其中的低层绘图操作和GUI有了更加深刻的认识。第二,虽然在写的过程中遇到了一些问题,例如刚开始的时候对Matlab菜单栏的设计我不是很理解,以至于不知道如何打开GUI工具箱。但是通过查阅一些参考文献、网上收集一些资料以及和同学相互探讨,当把一些简单的问题全部一一的解决掉时,那种成功的喜悦心情无法用言语表达。第三,最后,要特别感谢我的指导老师周忠老师。不知道是自己的电脑设置问题,还是所使用的Matlab版本问题,在老师的电脑上可以运行的程序在我的电脑上就是出现错误。周老师听后我的讲述后就亲自来到我的宿舍帮我解决设计中所用到的问题。当成功的界面显示在自己面前时,那种对周老师的感激和崇拜真是无以言表。 总之,通过这篇“用Matlab编程实现Matlab简易自学系统”的毕业设计,很好的锻炼了自己的自学能力和解决问题的能力。当一个问题摆在自己面前时,现在知道如何需找解决的方案。我想这种能力正是在以后的学习和工作中所需要的。参考文献1 刘卫国,Matlab程序设计与应用,高等教育出版社,20092 薛定宇,高等应用数学问题的Matlab求解,清华大学出版社,20053 周博,Matlab科学计算,机械工业出版社,20104 魏巍,应用数学工具箱技术手册,国防工业出版社,20045 施晓红,精通MATLAB GUI,北京大学出版社,2003致谢随着这篇毕业论文的定稿,我的四年大学生活也将随之结束,这也是我向老师提交的最后一份作业。回首四年的大学生活,真的有太多太多的回忆。时光如梭,好想再次体验这份不可能再有的美好时光。如果时光机器可以倒转,我会更加珍惜曾经那些不经意间流失的光阴。每逢独自一人走在校园的路上,不禁感叹:逝者如斯夫,不舍昼夜!首先,在这里要感谢我的指导老师周忠老师,在繁忙的教学、研究工作之余抽出时间精心的指导我们。一直以来老师给我的都是激励和引导,每当遇到问题时总可以在老师那里得到满意的解答,老师广博深厚的学识,严谨的治学态度和勤勉的精神给我以深刻的影响。有了这些指导和帮助我的论文才得以顺利完成。更重要的是老师给我的这种影响,让我受益终生。在此谨向周老师致以深深的敬意和衷心的感谢!其次,我更要感谢信科07的全体同学。匆匆四年时光,留下的只有美好的回忆。海可枯石可烂,但我们之间的那份纯真的友谊永远无法磨灭。我们四年来的真诚友谊,使我终生难忘。我还要感谢理学院的各位老师,在此谨向培养、教导、批评我的每一位老师致以诚挚的感谢!最后,我要感谢我培养我四年的亲爱的母校:中原工学院。是她,让我体验了难得的大学生活;是她,让我学会了做人、做事的道理;是她,让我学会了步入社会的第一步。虽然她没有我想象中的那样完美,但是我仍要深深地感激她,她将是我人生道路的动力之源和坚强后盾。“博学弘德,自强不息”的校训将永远铭刻我心!附录Matlab简易自学系统源代码部分Matlab简易自学系统高级绘图选项栏代码如下:function Untitled_78_Callback(hObject, eventdata, handles)% hObject handle to Untitled_78 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% clear; clc;% subplot(1,3,2 3);% set(gcf,color,0.90,0.92,0.90);x=linspace(0,2*pi,30);y=2+sin(x);X,Y,Z = cylinder(y);surf(X,Y,Z);str=uicontrol( Style,Text,fontsize,12,position,13 20 pos(3)+25 pos(4)-90);tline=importdata(52.txt);outstring,newpos = textwrap(str,tline);set(str,String,outstring,HorizontalAlignment,left);% -function Untitled_85_Callback(hObject, eventdata, handles)% hObject handle to Untitled_85 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)s; %m文件设置窗口大小t = linspace(-2*pi,2*pi,250);x = sin(t).*(cos(2*t).2);y = cos(t).*(sin(2*t).2);z = t;comet3(x, y, z);str=uicontrol( Style,Text,fontsize,12,position,13 20 pos(3)+25 pos(4)-90);tline=importdata(54.txt);outstring,newpos = textwrap(str,tline);set(str,String,outstring,HorizontalAlignment,left);% -function Untitled_79_Callback(hObject, eventdata, handles)% hObject handle to Untitled_79 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)s;x=linspace(0,4,30);y=linspace(0,3,20);X,Y=meshgrid(x,y);Z=sqrt(4+X.2+Y.2);ribbon(Y, Z);str=uicontrol( Style,Text,fontsize,12,position,13 20 pos(3)+25 pos(4)-90);tline=importdata(55.txt);outstring,newpos = textwrap(str,tline);set(str,String,outstring,HorizontalAlignment,left);% -function Untitled_86_Callback(hObject, eventdata, handles)% hObject handle to Untitled_86 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clear; clc;s;x,y,z = sphere(16);X = x(:)*0.5, x(:)*0.75, x(:);Y = y(:)*0.5, y(:)*0.75, y(:);Z = z(:)*0.5, z(:)*0.75, z(:);t1 = 1,0.75,0.5*10;t2 = prod(size(x);S = repmat(t1,t2,1);t3 = 1,2,3;t4 = prod(size(x);C = repmat(t3,t4,1);scatter3(X(:),Y(:),Z(:),S(:),C(:)view(-60,60)box on;str=uicontrol( Style,Text,fontsize,12,position,13 70 pos(3)+25 pos(4)-65);tline=importdata(59.txt);outstring,newpos = textwrap(str,tline);set(str,String,outstring,HorizontalAlignment,left);% -function Untitled_80_Callback(hObject, eventdata, handles)% hObject handle to Untitled_80 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clear; clc;s;t1=-3:0.3:3;t2=-3:0.35:3;t3=-3:0.25:3;x, y, z = meshgrid(t1, t2, t3);v=x.*exp(-x.2-y.2-z.2);xslice = -1.25, 0.85, 2.5;yslice = 2.5;zslice = -2.5, 0;slice(x, y, z, v, xslice, yslice, zslice);str=uicontrol( Style,Text,fontsize,12,position,13 20 pos(3)+25 pos(4)-90);tline=importdata(511.txt);outstring,newpos = textwrap(str,tline);set(str,String,outstring,HorizontalAlignment,left);% -function Untitled_87_Callback(hObject, eventdata, handles)% hObject handle to Untitled_87 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clear;clc;s;x, y, z = peaks(25);waterfall(x,y,z);str=uicontrol( Style,Text,fontsize,12,position,13 20 pos(3)+25 pos(4)-90);tline=importdata(513.txt);outstring,newpos = textwrap(str,tline);set(str,String,outstring,HorizontalAlignment,left);% -function Untitled_81_Callback(hObject, eventdata, handles)% hObject handle to Untitled_81 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clear; clc;s;x=linspace(0,4,30);y=linspace(0,3,20);X,Y=mesh

温馨提示

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

评论

0/150

提交评论