




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用mat i ab编程实现mat i ab简易自学系统the complement of matlab self-learningsystems by matlab programming院系名称:理学院 班 级:信科071 学 号:学生姓名:彭演锋 指导教师:周忠摘要mat lab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计 算语言和交互式环境,有其强大的图形编程系统,但初学者很难快速掌握这些强 大的功能。因此通过编写一个简单易用的自学系统,通过大量实例和效果演示详 细介绍mat lab基本的功能,从而让初学者在短期内快速上手。本文利用mat lab 强大的图形编程系统设计出的
2、matlab简单易用口学系统,包含了大量的实例说 明和效果演示,图形并茂从而达到让初学者在最短时间内掌握mat lab最基本的 用法的目的。关键词:mat lab, gui,图形对象,图形用户界面abstractmatlab is used for algorithm development, data visualization, data analysis and numerical advanced technical computing language and interactive environment, with its powerful graphical programmi
3、ng 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 mak
4、es full use of matlab powerful graphical programming system.lt 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 in
5、terface目录1弓丨言11. 1matlab 简介11.2mat lab简易自学系统21.3学习掌握mat lab要点22开发工具概述42.1低级绘图操作42. 2gui 简介53 mat lab简易自学系统73. 1系统特点简介73. 2系统制作过程73. 3功能演示94 总结11参考文献12致谢13附录141引言1.1 matlab 简介matlab (matrixlaborator)是mathworks公司开发科学与工程计算软件;广 泛应用于口动控制、数学运算、信号分析、计算机技术、图像信号处理、财务分 析、航天工业、汽车工业、生物医学工程、语音处理和雷达工程等行业;国内外 高校和研
6、究部门科学研究的重要工具;matlib已成为数学计算工具方面事实上 的标准。matmb冇如下功能和特点;1、功能强大;其一、运算功能强大,matlab的数值运算要素不是单个数据, 而是矩阵,每个元素都可看作复数,运算包括加、减、乘、除、函数运算等;通matlab的符号工具箱,可以解决在数学、应用科学和工程计算领域中常遇到 的符号计算问题。其二、文字处理功能强大:matlab的notebook为用户提供了 强大的文字处理功能,允许用户从word访问matlab的数值计算和可视化结果。2、人机界面友好,编程效率高;语言规则与笔算式相似,命令表达方式与 标准的数学表达式非常相近。解释方式工作的,键入
7、算式无需编译立即得出结果, 若有错误也立即做出反应,便于编程者立即改正。3、强大而智能化的作图功能工程计算的结果可视化,使原始数据的关系更加清晰明了;多种坐标系;能绘制三维坐标中的曲线和曲面。4、可扩展性强;包括基木部分和工具箱两大部分,具有良好的可扩展性, 工具箱可以任意增减。5、simulink动态仿真功能;matlab的simulink捉供了动态仿真的功能, 用户通过绘制框图來模拟一个线性、非线性、连续或离散的系统,通过simulink 能够仿真并分析该系统。6、功能丰富的工具箱;matlab由基木部分和功能各异的工具箱组成。基木 部分是matlab的核心,工具箱是扩展部分。工具箱是用m
8、atlab的基本语句编成 的各种子程序集,用于解决某一方而的专门问题或实现某一类的新算法。大量针 对各专业应用的工具箱的提供,使matlab适用于不同领域。1.2 matlab简易自学系统mat lab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计 算语言和交互式环境,有其强大的图形编程系统,但初学者很难快速掌握这些强 大的功能。因此通过编写一个简单易用的自学系统,以让初学者快速上手,在短 期内掌握mat lab最基本的功能。本文利用mat lab强大的图形编程系统设计出的 mat lab简单易用自学系统,包含了大量的实例说明和效果演示,图形并茂从而 达到让初学者在最短时间内掌握m
9、at lab最基木的用法的口的。1.3学习掌握matlab要点mat lab主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。 它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等 诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必 须进行冇效数值计算的众多科学领域捉供了一种全而的解决方案,并在很大程度 上摆脱了传统非交互式程序设计语言(如c、fortran)的编辑模式,代表了当 今国际科学计算软件的先进水平。matlab简单的编程环境提供了比较完备的调 试系统,程序不必经过编译就可以直接运行,而且能够及吋地报告出现的错误及 进行出错原因分析,事
10、实上btbb已经成为当今科学计算的一个标准。那么作 为一位刚刚接触mat lab的初学者来时,记住以下几个耍点对学习掌握mai tai有 很大的帮助。1、在各种数学软件中,为何mat lab功能最为强犬?mat lab提供功能强大的工具箱,且可以直接使用第三方开发的matlab工 具箱及用户口定义工具箱,功能扩展无限制。2. matlab按列存储的特性。举例如f:若 a= 3 7 8;6 2 1;5 9 4那么访问元素9冇2种方法,a(3, 2)和a(6)以max (a)的结果为例说明按列操作,这样就学会了 n多未知mat lab的命令 用法,比如std(a)等等3、学会利用mat lab自身
11、强大的帮助系统比如要查询正弦函数的名字,只要我们记住sin函数在任何系统中都是这个 名字,则利用mat lab帮助系统可以使用下列语句查询:which sin%查询sin函数所在工具箱的名称help查找的工具箱的名称列出该工具箱下所冇函数的名称及解释在列表屮找出正弦函数的名称即可,然后doc自然对数函数的名称即可查询 详细解释及例子。我想这三点对初学者在以后的学习matlab屮定会冇很大的帮助。“授人z 鱼,不如授人以渔”,只有掌握了学习方法,才能将mat lab真止的掌握。2开发工具概述2.1低级绘图操作绘图木來是一项很繁琐的工作,需要确定很多参数,但matlab高层绘图函 数代替用户做了这
12、些工作,给定了参数的默认值,这样就使用户省去了一些细节, 用起来很方便。但一旦遇到默认值不能满足实际需要时,就需要用户的干预。低 层绘图操作就能解决这个问题。在matlab中,用来获取图形、坐标轴和其它图形对象句柄的相关指令包 括: h = gcf%获取当前图形窗口的句柄值; h = gca%获取当前图形窗口内当前坐标轴的句柄值; h = geo h = gco(fh)%获取当前图形窗口内当前对象的句柄值;%返回图形窗口 fh中的当前对象的句柄值;在获得图形对彖的句柄值后,可以利用该图形对象的句柄获取、修改或删除 该图形对象的属性,相关指令包扌乩 get(h 1, 6color,) %返回句柄
13、hl所属对彖的颜色值; set(hl, 51o匚f) %将句柄hl所属对象的颜色设置为红色; delete(hl)%删除句柄hl所属的图形对象;还可以通过图形对象生成函数來生成图形对象,所有用于生成图形对象的matlab函数,都为所生成的图形对象返回一个句柄值。这些函数包括figure, uicontrol, uimenu, plot, mesh 和 surf 等,具体的指令格式为: hd = line(x,y,z)%line对象句柄生成指令; hd = surface(x,y,z)%surface 对象句柄生成指令; hd = image(x,y,z)%image对象句柄生成指令;例如在用m
14、atlab编程实现matlab简易自学系统屮,需要对figure 1窗口进行更改, 指令为:h=gcf;set(h;name7欢迎使用 matlab 简易自学系统vcolor0.95,0.92,0.90); 则窗口界面标题有原来的“untitle”改为“欢迎使用matlab简易自学系统”。2.2 gui简介所谓图形用户界面(graphical user interface ,gui)是有窗口、菜单、对话框等 各种图形元素组合成的用户界面、在这种用户界面屮,用户的操作既形象生动, 又方便灵活,所以当今绝大部分开发坏境与应用程序都采用图形用户界面,许多 流行的开发工具都可以进行图形用户界面设计。m
15、atlab作为强大的科学计算软件,同样也提供了图形界面设计功能。在matlab ,基本的图形用户界面对象包括3类:用户界面控件对象(uicontrol)> 卜拉式菜单对象(uimenu)/和快捷菜单对(uicontcxtmcnu)o根据这些图形对彖, 可以设计出界面友好、操作方便的图形用户界面。对matlab中的f igure、uimenu、 uicontextmenu> uicontrol等图形对象及其子对象的生成和属性设置、修改等 操作,可以在matlab的指令窗口中直接输入和关指令或编写指令式m文件來实 现。和其它面向对彖程序设计语言一样,matlab提供了简单、方便的gui
16、设计 与开发工具。matlab中常用的gui设计工具包括:对象设计编辑器(layout editor) 菜单编辑器(menu editor)对象属性查看器(property inspector)位置调整工具(alignment tool)对象浏览器(object browser)在matlab中,可以通过命令式方式与gut设计工具中的菜单编辑器menu editor两种方法建立菜单。在命令方式下,可以通过函数uimenu來建立下拉式 菜单对象,具体调用格式如下: uimenu ( 'propertyname? , propcrtyvaluc, ) uimenu (h, property
17、name? , propertyvalue, ) hl= uimenu( 'propertyname' , propertyvalue,) hl二 uimenu(h, propertyname' , propertyvalue,)例如在用matlab编程实现matlab简易自学系统屮,建立文本显示框的指令为: str=uicontrol ( ' style',' tcxt,,' fontsizc,, 12,' position', 83 20 pos(3) +5 pos-40); %建立文本框、字体 12、位置 posit
18、ion x y width heightt line二import data (' 32. txt'); % 读入文本文件outstring, newpos = textwrap(str, tline) ; %输出文本文件set (str,' string,, outstring,' horizontalalignment,, 'left')% 控制输出格式3 matlab简易自学系统3.1系统特点简介mat lab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计 算语言和交互式环境,有其强大的图形编程系统,但初学者很难快速常握这些强
19、大的功能,因此该h学系统使用mat lab提供的强大的图形用户界面和低级绘图 操作功能,以一本学习matlab经典的教材为蓝本,运用matlab自带的图形用户 界面功能和低级绘图操作指令编写而成。该口学系统包括以下选项:matlab入门、基木运算、程序设计、图形功能、 高级绘图、数据处理、微积分运算、符号运算、统计工具箱和帮助等菜单。在每 个不同的菜单中都包含有相应的若干个子菜单。子菜单小的内容都是最基本、使 用的一些mat lab命令,这些都是初学者掌握mat lab必不可少的知识。本系统 一大特点就就是:充分利用mat lab强大的图形编程系统而设计出的matlab简单 易用口学系统,其中
20、包含了大量的实例说明和效果演示,图形并茂从而达到让初 学者在最短时间内掌握mat lab最基本的用法的目的。3.2系统制作过程在设计简易自学系统的每个子菜单选项过程111,利用图形界面设计功能和低 层绘图操作指令。首先是利用菜单编辑器设计菜单栏;单击对彖设计编辑器界而的工具条上的 “menu editor”(菜单编辑器)按钮或通过选择菜单tools卜的了菜单menu edit, 口 j以创建和修改下拉式菜单或内容式菜单。其次是利用property inspector (属性检查器)设置属性;屈性检杳器可以杳 看每个图形对象的属性,也口j以修改和设置图形对象的属性值。在matlab中,也口j以通
21、过命令式方式与gui设计工具中的菜单编辑器 menu editor两种方法建立菜单。在命令方式下,可以通过函数uimenu来建立下 拉式菜单对彖。例如在设计图形功能/二维图形/图形绘制选项时具休编程如下:clear; clc;si = getco/screensize1)% the size of the screen.sw=1024;sh=768;pos0=(sl(3)-sw)/2 (sl(4)-sh)/2 sw shpos=|poso(l) pos0(2) poso(3)/3 pos0(4)/1.05j;set(gcf, position; pos0);t=linspace(0,pi,36
22、);%对打开窗口进行设计xl=sin(t);x2=sin(2*t);x3=sin(3*t);plot(t,xl); %根据向量t,xl绘制二维曲线图;hold on;plot(t,x2); %根据向量t,x2绘制二维曲线图;plot(t,x3); %根据向量t,x3绘制二维曲线图;str=uicontrol( 'stylevtext'/fontsize', 12/position', 13 20 pos(3)+25 pos(4)-90); tline=importdatac45.txt');outstring,newpos = textwrap(str,
23、tline);set(str,string*,outstring/horizontalalignment','left1); %设计显示文本框通过类似方法设计出"matlab简易自学系统”界面。3.3功能演示使用“matlab简易自学系统”步骤如下:第一步:点击matlab运行按钮,弹出欢迎界面:第二步:选择相应的菜单选项,例如依次选择图形功能/二维图形/图形绘制选项:笫三步:会显示出绘制图形的基本指令及其说明和图像,显示效果如下:4总结第一,通过写设计“ matlab简易自学系统”,首先让我对mat lab有了比较深 入的理解,并对其中的低层绘图操作和gui有了更加
24、深刻的认识。第二,虽然在写的过程中遇到了一些问题,例如刚开始的时候xj- mat lab菜 单栏的设计我不是很理解,以至于不知道如何打开gui工具箱。但是通过查阅一 些参考文献、网上收集一些资料以及和同学和互探讨,当把一些简单的问题全部 一一的解决掉时,那种成功的喜悦心情无法用言语表达。第三,最后,要特别感谢我的指导老师周忠老师。不知道是口己的电脑设置 问题,还是所使用的mat lab版本问题,在老师的屯脑上可以运行的程序在我的 电脑上就是出现错误。周老师听后我的讲述后就亲自来到我的宿舍帮我解决设计 中所用到的问题。当成功的界面显示在自己面前时,那种对周老师的感激和崇拜 真是无以言表。总z,通
25、过这篇“用matlab编程实现matlab简易门学系统'”的毕业设计, 很好的锻炼了自己的自学能力和解决问题的能力。当一个问题摆在自己面前时, 现在知道如何需找解决的方案。我想这种能力正是在以后的学习和工作屮所需要 的。参考文献1刘卫国,matlab程序设计与应用,高等教育出版社,2009 薛定宇,高等应用数学问题的matlab求解,清华大学出版社,20053 周博,matlab科学计算,机械工业出版社,20104 魏巍,应用数学工具箱技术手册,国防工业出版社,20045 施晓红,粹通matlab gui,北京大学出版社,2003致谢随着这篇毕业论文的定稿,我的四年大学生活也将随之结束
26、,这也是我向老 师提交的最后一份作业。冋首四年的大学生活,真的有太多太多的冋忆。时光如 梭,好想再次体验这份不可能再有的美好时光。如果时光机器可以倒转,我会更 加珍惜曾经那些不经意间流失的光阴。每逢独自一人走在校园的路上,不禁感叹: 逝者如斯夫,不舍昼夜!首先,在这里要感谢我的指导老师周忠老师,在繁忙的教学、研究工作之余 抽出时间精心的指导我们。一直以来老师给我的都是激励和引导,每当遇到问题 时总可以在老师那里得到满意的解答,老师广博深厚的学识,严谨的治学态度和 勤勉的精神给我以深刻的影响。有了这些指导和帮助我的论文才得以顺利完成。 更重要的是老师给我的这种影响,让我受益终生。在此谨向周老师致
27、以深深的敬 意和衷心的感谢!其次,我更要感谢信科07的全体同学。匆匆四年时光,留下的只有美好的 冋忆。海可枯石可烂,但我们之间的那份纯真的友谊永远无法磨灭。我们四年来 的真诚友谊,使我终生难忘。我还要感谢理学院的各位老师,在此谨向培养、教 导、批评我的每一位老师致以诚挚的感谢!最后,我要感谢我培养我四年的亲爱的母校:中原工学院。是她,让我体验 了难得的大学生活;是她,让我学会了做人、做事的道理;是她,让我学会了步 入社会的第一步。虽然她没有我想象中的那样完美,但是我仍要深深地感激她, 她将是我人生道路的动力之源和坚强后盾。“博学弘徳,自强不息”的校训将永 远铭刻我心!附录matlab简易自学系
28、统源代码部分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(l,3,2 3|);% set(gcf,c
29、olor1,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( 'stylevtext'/fontsize', 12?'position, 13 20 pos(3)+25 pos(4)-90); tline=importdata(,52.txt,);outstring.newpos = textwrap(str,tline); setcstr/stringoutstring/horizontalalignmenf/leff)
30、;%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).a2);y =
31、cos(t).*(sin(2*t).a2);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/stringoutstring/horizontalalignment71eff);%function untitled_79_callback
32、(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.a2+y.a2);ribbon(y, z);str=uicontro
33、l( 'style1,'text*,'fontsize',12,'position*,13 20 pos(3)+25 pos(4)-90); tline=importdata(,5 5. txf);outstring.newpos = textwrap(str,tline); set(str/stringoutstring/horizontalalignrnent71eft,);%function untitled_86_callback(hobject, eventdata, handles)% hobject handle to untitled_8
34、6 (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;xyz = sphere(16);x = x(:)*0.5, x(:)*o75, x(:);y=y(:)*05, y(:)*0.75, y(:);z 二z(:)*05,z(:)*0.75,z(:);tl = l,0.75,0.5*10;t2 = prod(size(x);s = repmat(tl
35、,t2,l);t3 = 1,2,31;t4 = prod(size(x);c = repmat(t3,t4,l);scatter3(x(:),y(:),z(:),s(:),c(:)view(-60,60)box on;str=uicontrol( 'style1,'text','fontsize',12,'position',13 70 pos(3)+25 pos(4)-65); tline二impoildatac59txf);outstring.newpos = textwrap(str,tline);set(str/stringout
36、string/horizontalalignrnent71eft,);%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;tl=-3:0.3:3;t2 二 3:0.35:
37、3;t3=-3:0.25:3;x, y5 z = meshgrid(tl, t2, t3);v=x.*exp(-x.a2-y.a2-z.a2);xslice 二卜 1.25, 0.85, 2.5;yslice = 2.5;zslice = 25, 0;slice(x, y, z, v, xslice, yslice, zslice);str=uicontrol( 'style*,'text',yontsize', 12,'position', 13 20 pos(3)+25 pos(4)-90); tline=importdata(,51 l.t
38、xf);outstring.newposl = tex twrap(str, tline); set(str/stringoutstring/horizontalalignmentvleft,);%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 an
39、d 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(f513.txt);outstring.newpos = textwrap(str,tline); set(str/stringoutstring/horizontalalignment71eff);%functio
40、n 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=meshgrid(x,y);z=x.a2+y.a2;tri = delaunay(x, y);trimesh(tri,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 短途运输安全管理计划
- 演出协议与个人签(2025年版)
- 人教版初中历史与社会七年级上册 4.1 美国政治的心脏 华盛顿 教学设计
- 行为转变理论护理模式
- 母婴店活动促销方案
- 血脂检查临床意义
- Unit 1 Exploring the topic-Theme Reading教学设计2024-2025学年仁爱科普版英语七年级上册
- 2025年内江货运资格证考试真题
- 2025年楚雄下载货运从业资格证模拟考试系统试题
- 第一单元 《打扫卫生》(教案)2024-2025学年五年级上册 北师大版
- 2025届天津市河东区高考一模地理试题(原卷版+解析版)
- 2025国家电投集团中国电力招聘8人笔试参考题库附带答案详解
- 曲靖市出租汽车从业资格证区域科目考试题(附答案)
- 2025年安徽城市管理职业学院单招职业技能考试题库汇编
- (二调)武汉市2025届高中毕业生二月调研考试 历史试卷
- 《百日竞渡、逆风翱翔》2025年中考百日誓师动员哪吒精神班会课件
- 2024年食品生产企业食品安全管理人员监督抽查考试题库(含答案)
- GA 268-2009道路交通事故尸体检验
- MATLAB在电力系统中应用
- 基于深度学习的图像压缩感知算法综述
- 主板维修思路分析
评论
0/150
提交评论