1、第一讲 MATLAB入门,数学软件,一、MATLAB操作基础,二、变量,三、一维数组(向量),四、二维数组(矩阵),五、数组的运算,六、基本数学函数,七、小结与练习,MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中许多问题。, MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。, 矩阵是MATLAB的核心,一、MATLAB操作基础 1.1 MATLAB概述 1. MATLAB的发展,1984年,MATLAB第1版(DOS版) 1992年,MATLAB4.0版 199
2、4年,MATLAB 4.2版 1997年,MATLAB 5.0版 1999年,MATLAB 5.3版 2000年,MATLAB 6.0版 2001年,MATLAB 6.1版 2002年,MATLAB 6.5版 2004年,MATLAB 7.0版,2 MATLAB的主要功能,(1)数值计算和符号计算功能 MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。 MATLAB和著名的符号计算语言Maple相结合,使得MATLAB具有符号计算功能。,(2)绘图功能 MATLAB提供了两个层次的绘图操作:一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作
3、。,2 MATLAB的主要功能,(3)编程语言 MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。,(4)MATLAB工具箱 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。,3. 初识MATLAB,例1-1 绘制正弦曲线和余弦曲线。 x=0:0.5:360*pi/180; plot(x,sin(x),x,cos(x);,例1-2 求方程 3x4+7x3 +9x2-23=0的全部根。 p=3,7,9,0,-23; %建立多项式系数向量 x=roots(p) %求根,1
4、.2 MATLAB集成环境 1.2.1 启动与退出MATLAB集成环境 1. MATLAB系统的启动,与一般的Windows程序一样,启动MATLAB系统有3种常见方法: (1)使用Windows“开始”菜单。 (2)运行MATLAB系统启动程序matlab.exe。 (3) 利用快捷方式。,1.2 MATLAB集成环境 1.2.1 启动与退出MATLAB集成环境 1. MATLAB系统的启动,启动MATLAB后,将进入MATLAB 7.0集成环境。MATLAB 7.0集成环境包括MATLAB主窗口、命令窗口(Command Window)、工作空间窗口(Workspace)、命令历史窗口(C
5、ommand History)、当前目录窗口(Current Directory)和启动平台窗口(Launch Pad)。,1.2 MATLAB集成环境 1.2.1 启动与退出MATLAB集成环境 1. MATLAB系统的启动,当MATLAB安装完毕并首次启动时,展现在屏幕上的界面为MATLAB的默认界面,如右图所示。,1.2 MATLAB集成环境 1.2.1 启动与退出MATLAB集成环境 2. MATLAB系统的退出,要退出MATLAB系统,也有3种常见方法: (1) 在MATLAB主窗口File菜单中选择Exit MATLAB命令。 (2) 在MATLAB命令窗口输入Exit或Quit命
6、令。 (3) 单击MATLAB主窗口的“关闭”按钮。,1.2 MATLAB集成环境 1.2.2 主窗口,1.2 MATLAB集成环境 1.2.2 主窗口,MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。,1菜单栏 在MATLAB 6.5主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help 6个菜单项。,1.2 MATLAB集成环境 1.2.2 主窗口 1菜单栏,(1) File菜单项:File菜单项实现有关文件的操作。 (2) Edit菜单项:Edit菜单项用于命令窗口的编辑操作。 (3) View菜单项:Vi
7、ew菜单项用于设置MATLAB集成环境的显示方式。,1.2 MATLAB集成环境 1.2.2 主窗口 1菜单栏,(4) Web菜单项:Web菜单项用于设置MATLAB的Web操作。 (5) Window菜单项:主窗口菜单栏上的Window菜单,只包含一个子菜单Close all,用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。 (6) Help菜单项:Help菜单项用于提供帮助信息。,1.2 MATLAB集成环境 1.2.2 主窗口 2工具栏,MATLAB 7.0主窗口的工具栏共提供了10个命令按钮。这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快
8、捷、方便。,1.2 MATLAB集成环境 1.2.3 命令窗口,命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。 MATLAB命令窗口中的“”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。,1.2 MATLAB集成环境 1.2.3 命令窗口,一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例如 p=15,m=35 p=15;m=35 。,1.2 MATLAB集成
9、环境 1.2.3 命令窗口,如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。 在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。,1.2 MATLAB集成环境 1.2.4 工作空间窗口,工作空间是MATLAB用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。,1.2 MATLAB集成环境 1.2.5 当前目录窗口和搜索路径 1当前目录窗口,当前目录是指MA
10、TLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。 在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。 将用户目录设置成当前目录也可使用cd命令。例如,将用户目录c:mydir设置为当前目录,可在命令窗口输入命令: cd c:mydir,1.2 MATLAB集成环境 1.2.5 当前目录窗口和搜索路径 2MATLAB的搜索路径,当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。基本的搜索过程是: (1) 检查该命令是不是一个变量。 (2) 检查该命令是不是一个内部函数。 (3) 检查该命令是否
11、当前目录下的M文件。 (4) 检查该命令是否MATLAB搜索路径中其他目录下的M文件。,1.2 MATLAB集成环境 1.2.5 当前目录窗口和搜索路径 2MATLAB的搜索路径,用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。设置搜索路径的方法有: (1) 用path命令设置搜索路径。例如,将用户目录c:mydir加到搜索路径下,可在命令窗口输入命令: path(path,c:mydir),1.2 MATLAB集成环境 1.2.5 当前目录窗口和搜索路径 2MATLAB的搜索路径,(2) 用对话框设置搜索路径 在MATLAB的File菜单中选Se
12、t Path命令或在命令窗口执行pathtool命令,将出现搜索路径设置对话框。通过Add Folder或Add with Subfolder命令按钮将指定路径添加到搜索路径列表中。 在修改完搜索路径后,则需要保存搜索路径。,1.2 MATLAB集成环境 1.2.6 命令历史记录窗口,在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择Edit菜单中的Clear Command History命令。,1.3 MATLAB帮助系统 1.3.1 帮助窗口,进入帮助窗
13、口可以通过以下3种方法: (1) 单击MATLAB主窗口工具栏中的Help按钮。 (2) 在命令窗口中输入helpwin、helpdesk或doc。 (3) 选择Help菜单中的“MATLAB Help”选项。,1.3 MATLAB帮助系统 1.3.2 帮助命令,MATLAB帮助命令包括help、lookfor以及模糊查询。,1help命令 在MATLAB 7.0命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过help加函数名来显示该函数的帮助说明。,1.3 MATLAB帮助系统 1.3.2 帮助命令 2lookfor命令,hel
14、p命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。 lookfor命令只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。,1.3 MATLAB帮助系统 1.3.2 帮助命令 3模糊查询,MATLAB 6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。,二、变 量,MATLAB中变量的命名规则: (1)必须是不含空格的单个词; (2)区分大小写; (3)最多不超过63个字符; (4)必须以字母打头,
15、之后可以是任意字母、 数字或下划线,不允许使用标点符号。,特殊变量表,三、一维数组(向量) 1、创建简单的数组,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个元素的行向量,MATLAB(shuzu1),Shuzu1.m x=1,2,3,4,5,8,7,18 y=1:7 z=3:2:
16、9 v=y,z u=linspace(2,9,11),2、 数组元素的访问,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个元素。,Shuzu2.m x=1:9 y=x(2:2:8) z=x(1),x(6),x(8),3、行向量与列向量 行向量:数组是一行数列,按行方向分布;
17、列向量:数组是一行数列,按l列方向分布。 相同点与不同点: 数组操作和运算方式一样,但结果的显示形式不同。,产生列向量的方法(两种):直接产生 例 c=1;2;3;4转置产生 例 b=1,2,3,4; c=b 说明:以空格或逗号分隔的元素指定的是不同列 的元素,以分号分隔的元素指定了不同行的元素。,四、二维数组(矩阵),矩阵是由若干行若干列构成的一个数表。 方括号标识矩阵输入的起始。 逗号或空格作用:分隔某一行的元素。 分号作用:区分不同的行。 Enter键作用之一:输入矩阵时,按Enter键开始一新行。,1、矩阵的建立,注意:输入矩阵时,严格要求所有行有相同个数的元素。 例如 m=1 2 3
18、 4 ;5 6 7 8;9 10 11 12 p=1 1 1 12 2 2 23 3 3 3,1、矩阵的建立,d=eye(m,n) %产生一个m行、n列的单位矩阵 d=eye(n) %产生一个n阶的单位方阵,c=ones(m,n) %产生一个m行、n列的元素全为1的矩阵 c=ones(n) %产生一个n阶元素均为1的方阵,b=zeros(m,n) %产生一个m行、n列的零矩阵 b=zeros(n) %产生一个n阶的零方阵,a= %产生一个空矩阵,当对一项操作无结果时, 返回空矩阵,空矩阵大小为零。,2、特殊矩阵:,MATLAB(matrix1),matrix1.m m=1,2,3,4;5,6,
19、7,8;9,10,11,12 p=1 1 1 12 2 2 23 3 3 3 a= b=zeros(2,3) b=zeros(3) c=ones(2,3) d=eye(2,3) e=eye(3),3、矩阵中元素的操作,MATLAB(matrix2),(1)矩阵A的第r行:A(r,:),(2)矩阵A的第j列:A(:,j),(4)取矩阵A的第i1i2行、第j1j2列构成新矩阵:A(i1:i2,j1:j2),(5)逆序提取矩阵A的第i1i2行,构成新矩阵:A(i2:-1 : i1,: ),(6)逆序提取矩阵A的第j1j2列,构成新矩阵:A(:,j2:-1:j1),(7)删除A的第i1i2行,构成新矩
20、阵:A(i1:i2,:)= ,(8)删除A的第j1j2列,构成新矩阵:A(:,j1:j2)= ,(9)将矩阵A和B拼接成新矩阵:A,B;A;B,(3)依次提取矩阵A的每一列,将A拉伸为一列向量:A(:),matrix2.m a=1,2,3;4,5,6;7,8,9 a1=a(2,:) a2=a(:,2) a3=a(:) a4=a(1:2,2:3) a5=a(2:-1:1,:) a6=a(:,3:-1:2) a7=a;a7(1:2,:)= a8=a;a8(:,1)= a9=a,a2 a10=a;a1,五、数组的运算,1、数学运算符号及标点符号,1、数学运算符号及标点符号,(1) MATLAB命令后
21、逗号(或无标点符号)、分号作用:逗号(或无标点符号):显示命令结果;分号:抑制显示结果。 (2)“%” :注释文字标志. (3) “.”:续行标志,2、一维数组的运算,(1)标量-数组运算数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算.,设:a=a1,a2,an,c=标量,则:a+c=a1+c,a2+c,an+ca*c=c*a=a.*c= c.*a=a1*c,a2*c,an*ca/c= a./c= a1/c,a2/c,an/c(右除)c./a= c/a1,c/a2, c/an(右除),(1)标量-数组运算,设:a=a1,a2,an,c=标量,则:a+
22、c=a1+c,a2+c,an+ca*c=c*a=a.*c= c.*a=a1*c,a2*c,an*ca/c= a./c= a1/c,a2/c,an/c(右除)c./a= c/a1,c/a2, c/an(右除)c/a (错误)a.c= c./a= c/a1,c/a2,c/an(左除)ca= a1/c,a2/c,an/c (左除)a.c= a1c,a2c,ancc.a= ca1,ca2,canac,ca(错误),MATLAB(shuzu3),Shuzu3.m a=1,2,3,4 c=2 a1=a+c a2=a*c a3=a./c a4=a.c a5=a.c a6=c.a,(2)数组-数组运算两个数组
23、有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行,不同大小或维数的数组不能进行运算。,设:a=a1,a2,an,b=b1,b2,bn,则:a+b= a1+b1,a2+b2,an+bna.*b= b.*a = a1*b1,a2*b2,an*bna*b(错误)a./b= b.a= a1/b1,a2/b2,an/bna.b= b./a= b1/a1,b2/a2,bn/ana.b=a1b1,a2b2,anbnab(错误),MATLAB(shuzu4),Shuzu4.m a=2,2,2 b=3,3,3 c1=a+b c2=a.*b c3=a./b c4=a.b c5=a.b,(2)矩阵-矩阵运
24、算1 元素对元素的运算,同数组-数组运算。,3、矩阵运算,(1)标量-矩阵运算:同标量-数组运算,2 矩阵运算:线性代数课程中介绍,六、基本数学函数,从数据结构的基本形式来看,Matlab是一种向量式的编程语言,标量、向量、矩阵都可以统一视为二维数组;从操作方式来看,Matlab又是一种函数式的编程语言,大量的数值计算及其他操作如函数作图等均有已经设置完善的函数供用户调用,这正是该软件的魅力所在,也是该软件的编程效率高的原因。 函数调用举例(注意输入变量、输出变量格式规定) 帮助(help)的使用,部分常用基本数学函数,注:基本数学函数一般都能对数组进行运算。,七、作 业,练习数组的建立、操作与算术运算。,