收藏 分享(赏)

第2讲 matlab入门.ppt

上传人:无敌 文档编号:965519 上传时间:2018-05-08 格式:PPT 页数:69 大小:1.72MB
下载 相关 举报
第2讲 matlab入门.ppt_第1页
第1页 / 共69页
第2讲 matlab入门.ppt_第2页
第2页 / 共69页
第2讲 matlab入门.ppt_第3页
第3页 / 共69页
第2讲 matlab入门.ppt_第4页
第4页 / 共69页
第2讲 matlab入门.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

1、数学建模与数学实验,MATLAB入门,MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中许多问题., MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化., 矩阵是MATLAB的核心., MATLAB的进入与运行方式(两种).,一、MATLAB的桌面环境,1、Command Windows和MATLAB指令,2、 Command History 和历史记录,3、 Current Directory和搜索路径,4、图形窗,5、文本编辑窗,6、 使 用 帮 助,当MATLA

2、B安装完毕并首次运行时,展示在用户面前的界面为MATLAB运行时缺省界面窗体,如下图所示。,历史命令窗体(Command History)命令行窗体(Command Window)当前目录浏览器(Current Directory Browser)工作空间浏览器(Workspace Browser)数组编辑器(Array Editor)M文件编辑器/调试器(Editor/Debugger)超文本帮助浏览器(Help Navigator/Browser),1、Command Windows和MATLAB指令,命令行窗口,注意: 这里的符号“”为MATLAB的命令行提示符。 这里的符号“”表示键入

3、表达式之后按回车键。 MATLAB的数学运算符同其他的计算机高级语言(例如C语言)类似。 这里计算得到的结果显示为ans,ans是英文单词“answer”的缩写,它是MATLAB默认的系统变量。 所有MATLAB的计算结果和数值都默认使用双精度类型显示。,例子2 计算复数的运算(1+2i)(1-3i)。在MATLAB命令行窗口中键入: (1+2i)*(1-3i) 系统直接计算表达式的结果,并给出答案:ans = 7.0000-1.0000i,MATLAB的命令行窗口具有命令行记忆的功能,也就是说,在命令行窗口中,使用上、下光标键就可以重复以前键入的指令了,这对使用MATLAB是非常便利的功能。

4、,MATLAB命令行窗体还可以辅助用户完成指令的输入,例如在MATLAB命令行窗体中键入字符pas,然后单击Tab键,此时将弹出一个小窗体,提示当前MATLAB环境下,以pas为开头的所有MATLAB指令,如下图所示。,表1 常用的MATLAB控制指令,MATLAB指令,例子3 常用的控制指令示例。查看当前的路径: pwdans =D:ClassML01显示当前路径下的文件和子目录: dir. . FigureMenuBar.fig How am I suppose to live without you.mp3 Java,Said I loved you ,but I lied.mp3 ea

5、gles_hotelcanifornia.mp3 gui_soln.fig gui_soln.m mymesh.m test.m 显示当前路径下的MATLAB文件: whatM-files in the current directory D:Tempgui_soln mymesh test,what指令的路径: which whatbuilt-in (C:Program FilesMATLABR2006btoolboxmatlabgeneralwhat)查看M文件的路径: which logoC:Program FilesMATLABR2006btoolboxmatlabdemoslogo.

6、m执行系统指令: system(copy eagles_hotelcanifornia.mp3 eagles.mp3)已复制 1 个文件。 ans = 0,依次执行例子3的指令可以得到相应的指令输出,注意what指令和dir指令的区别。另外,在执行系统指令的时候还可以使用MATLAB的“!”符号,例如在执行例子1-5最后的拷贝命令时,也可以这样做: !copy eagles_hotelcanifornia.mp3 eagles.mp3 两者的区别在于通过system指令执行系统命令能够获取系统指令的返回值,例如指令执行的状态等。system指令的一般使用方法为system(command);,

7、其中,command就是系统指令,用单引号“”括起来作为参数传递给system指令。 在使用which指令的时候得到的输出根据which指令后面的参数不同而不同,例如在执行which what时,系统判断what为内建(build-in)的函数,而在执行which logo指令时,系统判断logo为M文件,并且给出了M文件所在的路径。有关内建函数或者M文件函数的概念将在本书的第四章中详细讲述。,如果希望在同一行键入多条MATLAB指令,则在指令与指令之间使用逗号“,”、分号“;”作为间隔即可,例如: format long; pians = 3.141592653589793这里在同一行设置了

8、命令行窗体显示方式(在下一小节详细介绍),同时调用了内建函数pi,得到相应的结果。注意:命令窗口中,显示逗号“,”结尾的指令运行结果;但不显示分号“;”结尾的指令运行结果。两者的运行结果均能在工作空间查询。,如果命令行较长,无法在同一行内键入或者需要将同一命令行分行键入,则需要在分行处使用符号“”来实现,例如: get(0,.Diary)ans =off 当在命令行窗体中键入“get(0,.”之后按下回车键就可以进入下一行,然后再继续键入Diary)并按下回车键来完成指令的输入并且执行指令得到相应的结果。,2、 Command History 和历史记录,命令行历史窗口,在命令行历史窗口中主要

9、记录了在MATLAB命令行窗口中键入的所有指令,一般包括每次启动MATLAB的时间,以及每次启动MATLAB之后键入的所有MATLAB指令。这些指令不但可以清楚地记录在命令行历史窗口中,而且还可以被再次执行,它们不仅能够被复制到MATLAB的命令行窗口中,而且还可以通过这些指令的记录直接创建M文件,这些功能都可以通过命令行历史窗口的快捷菜单来方便地完成,如下图所示。,快捷菜单中的指令说明如下: * Copy:拷贝当前选中的指令,可以将指令粘贴到其他的应用程序窗口中。 * Evaluate Selection:执行当前选中的指令。 * Create M-File:把当前选中的指令创建一个新的M文

10、件,文件的内容就是选中的所有指令。 * Delete Selection:从命令行历史窗口中删除当前选中的指令。 * Delete to Selection:将当前选中指令之前的所有历史记录指令从命令行历史窗口中删除。 * Delete Entire History:删除命令行历史窗口中所有的指令。,diary指令 diary指令也是常用的MATLAB命令行指令之一,该指令的功能是创建一个日志文件,在这个文件中,能够把所有在MATLAB命令行键入的指令以及在命令行窗口的输入保存下来。这个日志文件为纯文本格式,可以利用任何一种文本编辑器编辑这个文件。diary指令的常用方法如下:* diary:

11、在历史日志记录指令On和Off状态之间切换。* diary on:打开历史日志记录功能。* diary off:关闭历史日志记录功能。* diary(filename):创建日志文件,文件名为filename。,在使用diary指令时,若不指定文件名,则MATLAB自动创建一个默认文件名diary(注意,该文件没有扩展名,为纯文本文件)的日志文件,并且进入到历史日志记录状态。在日志文件中将记录所有在命令行窗口中键入的指令以及这些指令运行的结果。注意,diary记录指令的功能也仅在执行diary指令之后的MATLAB会话中有效,一旦关闭了MATLAB再次启动时,则diary指令需要重新键入。,3

12、、 Current Directory和搜索路径,当前路径查看器 MATLAB加载任何文件或执行任何指令都是从当前的工作路径下开始的,所以MATLAB也提供了当前路径的浏览器Current Directory,该工具的界面在默认情况下位于MATLAB界面的左上方,在工作空间浏览器的下面,可以单击Current Directory标签切换界面。和其他的桌面工具类似,当前路径查看器也可以浮动在所有窗体上方,也可以像默认的状态那样内嵌在桌面工具中,浮动的窗体如下图所示。,当前路径查看器主要的作用是帮助用户组织管理当前路径下的所有文件,特别是MATLAB文件。通过该工具能够运行、编辑相应的MATLAB

13、文件,加载MAT数据文件等,这些操作都可以通过相应的右键快捷菜单完成。,工作路径 MATLAB的工作路径就是当前的路径,MATLAB启动时采用默认的路径作为当前工作路径,这样所有的MATLAB文件保存和读取都将从该路径下开始。在Windows平台下,MATLAB提供了一个路径:C:matlab6work,在MATLAB首次启动时,就会使用该路径作为当前的工作路径。,启动时选择的工作路径是可以修改的。在桌面上选择MATLAB应用程序的快捷图标,然后单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,在弹出的对话框中有一个“起始位置”文本输入框,可以将需要设置的启动工作路径设置在这里。,搜索路径 如

14、前文所述,MATLAB的文件是通过不同的路径来进行组织管理的,为了避免执行不同路径下的MATLAB文件而不断切换不同的路径,MATLAB提供了搜索路径机制来完成对文件的组织和管理。 所有的MATLAB文件都被保存在不同的路径中,那么将这些路径按照一定的次序组织起来,就构成了搜索路径。当执行某个MATLAB指令时,系统将按照以下的顺序搜索该指令:,(1) 判断该指令是否为变量。 (2) 判断该指令是否为内建的函数。 (3) 在当前的路径下搜索是否存在该指令文件。 (4) 从搜索路径中依次搜索该文件直到找到第一个符合要求的函数文件为止。(5) 若上述的搜索都没有找到该指令,则报告错误信息。,设置搜

15、索路径可以通过MATLAB指令,也可以通过对话框界面完成。执行“File”菜单下的“Set Path”指令,在弹出的对话框中可以设置相应的搜索路径。,通常,只要执行了任一种绘图命令,就会自动产生图形窗, 以后的绘图都在这一个图形窗中进行。如想再建一个或几个图形窗,则可键入figure,MATLAB会新建一个图形窗,并自动给它依次排序。如果要人为规定新图为图3,则可键入figure(3)。如要调看已经存在的图形窗n ,也应键入figure(n)。在命令窗中,键入figure,得出空白的图形窗。如键入logo,即可生成MATLAB的标志图形,如下图所示。图形窗上的一排按钮,可以用来对图形进行修改或

16、注释。,4、图形窗,MATLAB 6.x的命令窗、图形窗和标志图形,MATLAB程序编制有两种方式。一种称为行命令方式,这就是在命令窗中一行一行地输入程序,计算机每次对一行命令作出反应,像计算器那样。这只能编简单的程序,在入门时可以用这种方式。程序稍复杂一些,就应把程序写成一个由多行语句组成的文件,让MATLAB来执行这个文件。编写和修改这种文件程序就要用到文本编辑器。命令窗上方最左边的按钮是用来打开文本编辑器空白页的, 左边第二个按钮是用来打开原有程序文件的。打开后的文本编辑窗见下图。,5、文本编辑窗,MATLAB 6.x的命令窗和文本编辑窗,编辑功能 Edit菜单中有许多通用的菜单选项,与

17、其他软件使用相似。有一组特别的操作,用于程序行的查找:Go to line 找到指定行号处Set/Clear Bookmark 设置或清除书签Next Bookmark 找到下一个书签处Prev Bookmark 找到前一个书签处,调试功能 Debug菜单和Breakpoints菜单是用来调试程序,两者需要联合使用。Step 单步运行Step in 单步运行,遇到函数时进入函数Step out 跳出函数或运行到下一个断点 Save and Run 存储文件并开始运行Go Until Cursor 运行到光标所在的位置Exit Debug Mode 退出调试模式,Breakpoints菜单:Se

18、t/Clear Breakpoint 设置或清除断点Clear All Breakpoint 清除所有断点Stop If Error 出错时停止程序运行Stop If Warning 出现警告时停止程序运行Stop If NaN or Inf 出现非数或无穷大时停止程序运行Stop If All Error 与Stop If Error 相同,但包括trycatch语句中的错误,6、 使 用 帮 助,在线帮助help,在MATLAB命令行窗体中,执行help指令: help 则此时在MATLAB命令行窗体中将显示所有帮助主题,可以看到,所有MATLAB帮助主题都是蓝色字体具有下划线,表明这些主

19、题都是具有超链接,单击相应的超链接,则可以在MATLAB帮助窗体中,打开相应的帮助信息文档。,如果需要获取帮助主题下的函数列表,则可以键入指令,例如help elfun,则在MATLAB命令行窗体中显示该帮助主题下所有函数列表。,如果需要获取具体函数的帮助,例如sin函数的在线帮助信息,则可以键入如下的指令: help sin SIN Sine of argument in radians. SIN(X) is the sine of the elements of X. See also asin, sind. Reference page in Help browser doc sin,H

20、1帮助lookfor 每一个M语言函数文件的第一行叫做H1帮助行,它能够被lookfor函数搜索查询,因此在这一行帮助中,往往是言简意赅的说明性语言,在所有的帮助中相对最重要。例如,在MATLAB命令行窗体中键入如下指令:, lookfor FourierFFT Discrete Fourier transform.FFT2 Two-dimensional discrete Fourier Transform.FFTN N-dimensional discrete Fourier Transform.IFFT Inverse discrete Fourier transform.IFFT2 T

21、wo-dimensional inverse discrete Fourier transform.IFFTN N-dimensional inverse discrete Fourier transform.,窗体帮助尽管在线帮助使用起来简便、快捷,但是在线帮助能够提供的信息毕竟有限,而且并不是所有与函数有关的内容都可以用在线帮助的形式表示,比如数学公式,图形等。因此,MATLAB还提供了内容更加丰富的帮助文档,作为MATLAB的用户指南出现。,MATLAB的帮助文档显示在MATLAB的帮助窗体中,单击MATLAB用户界面上的按钮,将打开MATLAB的帮助文档界面。,图 MATLAB的帮助文

22、档界面,这里能够看到的MATLAB帮助文档是伴随MATLAB产品一同发布的文档光盘经过安装之后的超文本内容。 Contents :所有产品帮助文档的目录,单击这些目录以及目录下面的文章标题,就可以在右边的窗体中具体浏览帮助信息。n Index:关键字索引查询。n Search Results:关键字全文搜索结果显示。n Demos:MATLAB演示示例。,MATLAB入门,一、变 量 与 函 数,二、数 组,三、 矩 阵,四、 MATLAB编程,五、 实 验 作 业,1. 变量 MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过1

23、9个字符;(4)变量名必须以字母打头,之后可以是 任意字母、数字或下划线,变量名中 不允许使用标点符号.,一、变 量 与 函 数,特殊变量表,2. 数学运算符号及标点符号,(1)MATLAB的每条命令后,若为逗号或无标点符号, 则显示命令的结果;若命令后为分号,则禁止显示结果. (2)“%” 后面所有文字为注释. (3) “.”表示续行.,3. 数学函数,MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件. 函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始,格式为: function 因变量名

24、=函数名(自变量名) 函数值的获得必须通过具体的运算实现,并赋给因变量.,4. M文件,M文件建立方法:1. 在MATLAB中,点:FileNew M-file 2. 在编辑窗口中输入程序内容 3. 点File Save,存盘,M文件名必须 与函数名一致.,MATLAB的应用程序也以M文件保存.,例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2,function f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)2,1.建立M文件:fun.m,MATLAB(fun),2. 可以直接使用函数fun.m,例如:计算 f(1,2), 只需在MATLAB命令

25、窗口键入命令:x=1 2fun(x),返回,x=logspace(first,last,n) 创建从first开始,到last结束,有n个元素的对数分隔行向量.,1. 创建简单的数组,二、数 组,MATLAB(shuzu1),x=a b c d e f创建包含指定元素的行向量.,x=first:last 创建从first开始,加1计数,到last结束的行向量.,x=first:increment:last 创建从first开始,加increment计数,到last结束的行向量.,x=linspace(first,last,n) 创建从first开始,到last结束,有n个元素的行向量.,2.

26、数组元素的访问,MATLAB(shuzu2),(3)直接使用元素编址序号. x(a b c d) 表示提取数组x的第a、b、c、d个元素构成一个新的数组x(a) x(b) x(c) x(d).,(2)访问一块元素: x(a :b :c)表示访问数组x的第a个元素开始,以步长b到第c个元素(但不超过c),b可以为负数,b缺省时为1.,(1)访问一个元素: x(i)表示访问数组x的第i个元素.,3. 数组的方向 前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量. 数组也可以是列向量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示.,产生列向量有两种方法: 直接产生 例

27、 c=1;2;3;4 转置产生 例 b=1 2 3 4; c=b 说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素.,4. 数组的运算,(1)标量-数组运算 数组对标量的加、减、乘、除和平方运算,是指数组的每个元素对该标量施加相应的加、减、乘、除、平方运算.,设:a=a1,a2,an, c是标量.,则:a+c=a1+c,a2+c,an+c a.*c=a1*c,a2*c,an*c a./c= a1/c,a2/c,an/c(右除) a.c= c/a1,c/a2,c/an (左除) a.c= a1c,a2c,anc c.a= ca1,ca2,can,MATLAB

28、(shuzu3),(2)数组-数组运算 当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行,不同大小或维数的数组是不能进行运算的.,设:a=a1,a2,an, b=b1,b2,bn,则:a+b= a1+b1,a2+b2,an+bn a.*b= a1*b1,a2*b2,an*bn a./b= a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbn,MATLAB(shuzu4),返回,三、 矩 阵,逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter键也表示开始新一行. 输入矩阵

29、时,严格要求所有行有相同的列. 例 m=1 2 3 4 ;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3 3,1. 矩阵的建立,特殊矩阵的建立:,MATLAB(matrix1),d=eye(m,n) 产生一个m行n列的单位矩阵,c=ones(m,n) 产生一个m行n列的元素全为1的矩阵,b=zeros(m,n) 产生一个m行n列的零矩阵,a= 产生一个空矩阵,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零,2. 矩阵中元素的操作,MATLAB(matrix2),(1)矩阵A的第r行:A(r,:),(2)矩阵A的第r列:A(:,r),(4)取矩阵A的第

30、i1i2行、第j1j2列构成新矩阵:A(i1:i2, j1:j2),(5)以逆序提取矩阵A的第i1i2行,构成新矩阵:A(i2:-1:i1,:),(6)以逆序提取矩阵A的第j1j2列,构成新矩阵:A(:,j2:-1:j1),(7)删除A的第i1i2行,构成新矩阵:A(i1:i2,:)=,(8)删除A的第j1j2列,构成新矩阵:A(:,j1:j2)=,(9)将矩阵A和B拼接成新矩阵:A B;A;B,(3)依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:),(2)矩阵-矩阵运算 1 元素对元素的运算,同数组-数组运算.,3. 矩阵的运算,(1)标量-矩阵运算 标量-数组运算相同.,MATLAB

31、(matrix3),2矩阵运算:矩阵加法:A+B矩阵乘法:A*B方阵的行列式:det(A)方阵的逆:inv(A)方阵的特征值与特征向量:V,D=eigA,返回,关系与逻辑运算,1. 关系操作符,2. 逻辑运算符,1. for循环:允许一组命令以固定的和预定的次数重复 for x=array commands end 在for和end语句之间的命令串commands按数组(array)中的每一列执行一次. 在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n),控制流,MATLAB提供三种决策或控制流结构: for循环、while循环、if-else-end结构. 这

32、些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在MATLAB提示符下.,例 对n=1,2,10,求xn= 的值.,MATLAB(for1),while (expression) commands end 只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串commands.,2. While循环 与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值.,MATLAB(while1),例 设银行年利率为11.25%.将10000元钱存入银行,问多长时间会连本带利翻一番?,3. if-else-e

33、nd结构(1)有一个选择的一般形式是: if (expression) commands end如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串commands.,MATLAB(fun1),MATLAB命令窗口输入fun1(2),fun1(-1)即可.,2) 有三个或更多的选择的一般形式是: if (expression1) commands1 else if (expression2) commands2 else if (expression3) commands3 else if elsecommands endendend end,先建立M文件fun2.m来定义函数f(x),再在MATLAB命令窗口输入fun2(2),fun2(0.5), fun2(-1)即可.,MATLAB(fun2),返回,对以下问题,编写M文件:(1)用起泡法对10个数由小到大排序. 即将相邻两个数比较,将小的调到前头.(2)有一个 矩阵,编程求出其最大值及其所处的位置.(3)编程求(4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下. 求它在第10次落地时,共经过多少米?第10次反弹有多高?(5)有一函数 ,写一程序,输入自变量的值,输出函数值.,实验作业,返回,谢 谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报