第二章:基本语法_第1页
第二章:基本语法_第2页
第二章:基本语法_第3页
第二章:基本语法_第4页
第二章:基本语法_第5页
已阅读5页,还剩179页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章:基本语法 本章重点:本章重点:主要文件类型及常用命令主要文件类型及常用命令矩阵、变量、表达式、常用函数矩阵、变量、表达式、常用函数MATLABMATLAB语言的基本语句结构及程序调试方法语言的基本语句结构及程序调试方法图形窗口与坐标系的概念图形窗口与坐标系的概念 二维图形的绘制二维图形的绘制 plot() 对数坐标图对数坐标图 极坐标图极坐标图 子图子图图形的修饰与标注图形的修饰与标注 MATLAB下图形对象的修改下图形对象的修改第二讲文件操作Matlab环境下的文件与其它系统一样,也有二类文件组成,一是文件,又称M文件,另一类是数据文件。系统除提供了文件的一般管理功能外,还提供了对数

2、据文件进行操作的特殊功能函数。2.1 基本命令基本命令1. help 帮助命令格式: help 命令名例如: help plot helpmatlabgeneral2. what 显示目录内容命令格式: what 目录名例如: what matlab 显示matlab目录下的所有M-文件。2.1 基本命令基本命令3type 显示文件内容命令格式: type文件名显示M-文件的内容。4 寻找命令格式: lookfor 命令或字符串寻找命令或字符串是否存在。例如: lookfor cos2.1 基本命令基本命令5which 寻找函数命令格式:which 函数名显示函数所在的文件位置,给出路径。例如

3、: which pinv2.1 基本命令基本命令6who,whos 显示变量命令显示当前变量。 whos命令更详细。7 save 保存结果命令从磁盘上读出或保存计算结果。例如: save test 将变量存入test.mat文件中。例如: save test x y 仅保存x ,y 变量。2.1 基本命令基本命令8 clear 清除变量命令格式: 变量名例如: clear x y9 disp 显示文本或变量内容命令例如:x=1 2 3 disp(x) y=aaaaaaa disp(y)2.1 基本命令基本命令10 cd 改变目录命令与DOS类似。11 dir 显示目录内容命令显示目录里的文件。

4、例如:dir matlabnotebook2.1 基本命令基本命令12delete 删除文件或对象命令格式: delete 文件名 delete(对象)例如:H=PLOT(X,X) delete (H) 删除图形对象H2.2 MATLAB2.2 MATLAB语言的基本语句结构语言的基本语句结构1.1.在在MATLABMATLAB中创建矩阵的原则:中创建矩阵的原则:1)1)矩阵元素必须写在矩阵元素必须写在“”内;内;2)2)矩阵的同一行之间用空格或矩阵的同一行之间用空格或“,”分隔;分隔;3)3)矩阵的行与行之间用分号或回车符分隔;矩阵的行与行之间用分号或回车符分隔;4)4)矩阵的尺寸不必预先定

5、义;矩阵的尺寸不必预先定义;5)5)矩阵元素可以是数值、变量、表达式或函数。例一矩阵元素可以是数值、变量、表达式或函数。例一2.2.矩阵的几种创建方法矩阵的几种创建方法 1)1)在命令窗口直接输入在命令窗口直接输入 2)2)由由M M文件创建矩阵文件创建矩阵 3)3)由函数创建矩阵由函数创建矩阵 MATLABMATLAB语言的基本语句结构语言的基本语句结构 3:访问矩阵: A(r,c):访问由r、c指定的元素或子矩阵。 A(r,:):访问由r指定的行向量或子矩阵。 A(:,c):访问由c指定的列向量或子矩阵。 A(:):将矩阵按列拉长作为列向量访问。 A(r):将矩阵按一维列向量来访问。 A(

6、:,end):访问矩阵的最后一列。 A(end,:):访问矩阵的最后一行。例题MATLABMATLAB的变量和表达式的变量和表达式 变量用变量名表示。变量用变量名表示。MATLABMATLAB变量名是由若干个字符构成的字符串,变量名是由若干个字符构成的字符串,构成变量名的字符可以是字母、数字或下划线,但第一个字符必构成变量名的字符可以是字母、数字或下划线,但第一个字符必须是字母。须是字母。MATLAB6MATLAB6可分辨可分辨3131个字符,超过个字符,超过3131个则不认。个则不认。MATLABMATLAB中的变量区分大小写。中的变量区分大小写。 表达式则是由运算符、函数调用、变量名以及特

7、殊字符组成的式子表达式则是由运算符、函数调用、变量名以及特殊字符组成的式子。 字符串与字符串变量:字符串与字符串变量:MATLABMATLAB可将字符串当作数组或矩阵处理。在可将字符串当作数组或矩阵处理。在MATLABMATLAB中,字符串用单引号括起来中,字符串用单引号括起来。注意:变量名表达式时,等号右边的表达式可以以分号注意:变量名表达式时,等号右边的表达式可以以分号;结结束,也可以以束,也可以以,结束或换行号结束,但含义不同。分号时,结束或换行号结束,但含义不同。分号时,变量结果不显示;逗号或换行时,则显示结果。变量结果不显示;逗号或换行时,则显示结果。MATLABMATLAB的基本运

8、算符的基本运算符( (一一) )矩阵运算符矩阵运算符 A A-矩阵矩阵A A的转置,如果的转置,如果A A是复矩阵,则其运算结果是共轭转置;是复矩阵,则其运算结果是共轭转置; A+B-A+B-矩阵的加运算,若矩阵的加运算,若A A和和B B的维数相同,则会将的维数相同,则会将A A和和B B矩阵的相应元素相加;矩阵的相应元素相加; A-B-A-B-矩阵的减运算,若矩阵的减运算,若A A和和B B的维数相同,则会将的维数相同,则会将A A和和B B矩阵的相应元素相减;矩阵的相应元素相减; A A* *B-B-矩阵相乘,矩阵相乘,A A的列数与的列数与B B的行数相等,即的行数相等,即A A和和B

9、 B矩阵维数相容,维数不相容是不矩阵维数相容,维数不相容是不可乘的。可乘的。 B/A-B/A-方程方程X X* *A=BA=B的解,即的解,即X=BX=B* *A A-1-1。称矩阵的右除。称矩阵的右除。 AB-AB-方程方程A A* *X=BX=B的解,即的解,即X=AX=A-1-1* *B B。称矩阵的左除。称矩阵的左除。 AB-AB-矩阵的乘方。矩阵的乘方。 A.A.* *B-B-矩阵的点乘运算,矩阵的点乘运算,A A和和B B阵的对应元素直接相乘,阵的对应元素直接相乘,A A和和B B要有相同的维数。要有相同的维数。 A.B,A./B-A.B,A./B-矩阵的点除运算,表示矩阵的点除运

10、算,表示A A和和B B阵的对应元素直接相除,阵的对应元素直接相除,A A和和B B要有相同的要有相同的维数。维数。 A.B-A.B-矩阵的点乘方,表示要对其元素逐一进行幂运算。与点乘相似。例三矩阵的点乘方,表示要对其元素逐一进行幂运算。与点乘相似。例三MATLABMATLAB的基本运算符的基本运算符( (二二) )关系运算符:关系运算符: MATLABMATLAB中提供了中提供了6 6种关系运算符,用于比较两个同维数的矩阵种关系运算符,用于比较两个同维数的矩阵 小于小于 = 大于大于 = = 大于或等于大于或等于 = = 等于等于 = = 不等于不等于 关系运算符可以用于检查矩阵的元素是否满

11、足某些条件。两个关系运算符可以用于检查矩阵的元素是否满足某些条件。两个同维数的矩阵比较的结果是与它们同维数的同维数的矩阵比较的结果是与它们同维数的0 0、1 1矩阵,矩阵,1 1表示结表示结果为真,果为真,0 0表示结果为假。表示结果为假。MATLABMATLAB的基本运算符的基本运算符( (三三) )逻辑运算符:逻辑运算符: 在在MATLABMATLAB中,逻辑运算符有中,逻辑运算符有3 3种。种。 & & 逻辑与。当运算双方对应元素都为非零时;结果为逻辑与。当运算双方对应元素都为非零时;结果为1 1,否则,结果为否则,结果为0 0。 | | 逻辑或。当运算双方对应元素有一个

12、为非零时;结果为逻辑或。当运算双方对应元素有一个为非零时;结果为1 1,否则,结果为,否则,结果为0 0。 逻辑非。当元素的值为逻辑非。当元素的值为0 0时,结果为时,结果为1 1,否则,结果为,否则,结果为0 0。例:例:a=1 0 3;0 a=1 0 3;0 1 61 6,b=-1 0 0;0 5 0.3b=-1 0 0;0 5 0.3,计算两矩阵对应,计算两矩阵对应元素的逻辑关系。元素的逻辑关系。a=1 0 3;0 -1 6;b=-1 0 0;0 5 0.3; a=1 0 3;0 -1 6;b=-1 0 0;0 5 0.3; yu=a&b, huo=a|byu=a&b,

13、huo=a|b,fei=afei=aMATLABMATLAB的基本运算符的基本运算符( (四四) )特殊运算符:特殊运算符: 在在MATLABMATLAB中,有一些特殊的符号,具有特殊的意义。中,有一些特殊的符号,具有特殊的意义。 1 1)在)在MATLABMATLAB的的M M文件中,可以加入解释行,解释行的标识符为:文件中,可以加入解释行,解释行的标识符为:“% %”,该符号后面的内容将作为注释内容。该符号后面的内容将作为注释内容。 2 2)行分隔符:)行分隔符:“;” 用在用在MATLABMATLAB语句后,用它时执行结果不显示,可语句后,用它时执行结果不显示,可避免显示一些不感兴趣的结

14、果。避免显示一些不感兴趣的结果。 3 3)冒号运算符)冒号运算符“:” 最主要的作用是生成向量。最主要的作用是生成向量。 如:如:j:k - j:k - 生成向量生成向量 j,j+1,j+2,j,j+1,j+2,k,k j:i:k - j:i:k - 生成向量生成向量 j,j+i,j+2i,j+3i,j,j+i,j+2i,j+3i,k ,k (j j为起始值,为起始值,i i为为步距步距,k,k为终止值,在仿真中经常用于生成时间向量)为终止值,在仿真中经常用于生成时间向量) A(:,j) - A(:,j) - 矩阵矩阵A A的第的第j j列列 A(i,:) - A(i,:) - 矩阵矩阵A A

15、的第的第i i行行 A(j:k) - A(j:k) - 生成向量生成向量A A (A A为向量时,为为向量时,为A A的第的第j j到第到第k k个元素,当个元素,当A A为矩阵时,为为矩阵时,为A A的按列数的第的按列数的第j j到第到第k k个元素)个元素) 4 4)MATLABMATLAB中允许对一个矩阵的单个元素进行赋值,如中允许对一个矩阵的单个元素进行赋值,如 A(5)=4A(5)=4第三讲 MATLAB程序设计 MATLAB有两种工作方式:交互式的命令行工作方式M文件的程序工作方式一. M文件一. M文件用MATLAB语言编写的程序,称为M文件。 M文件有两类:命令文件和函数文件。

16、命令文件:没有输入参数,也不返回输出参数。函数文件:可以输入参数,也可返回输出参数。M文件的建立与编辑建立新的M文件: 从MATLAB命令窗口的File菜单中选择New菜单项,再选择M-file命令。一. M文件编辑已有的M文件: 从MATLAB命令窗口的Flie菜单中选择Open M-file命令。命令文件将需要运行的命令编辑到一个命令文件中,然后在MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。【例1】 建立一个命令文件将变量a,b的值互换。 一. M文件 e31m文件: a=1:9; b=11,12,13;14,15,16;17,18,19; c=a;a=b;b=

17、c; a b 在MATLAB的命令窗口中输入e31,将会执行该命令文件。二数据的输入输出 1. input函数:函数:用于向计算机输入一个参数。 调用格式: A=input(提示信息,选项); 注:s选项,则允许用户输入一个字符串。 例如想输入一个人的姓名,可采用命令 xm=input(Whats your name:,s) 【例2】 求一元二次方程ax2 +bx+c=0的根。二数据的输入输出 a=input(a=?); b=input(b=?); c=input(c=?); d=b*b-4*a*c; x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a)将该程序以aa.m

18、文件存盘,然后运行aa.m文件。2 pause函数:函数:暂停程序的执行。 调用格式: pause(延迟秒数) 注:如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。二数据的输入输出 3 disp函数:函数:命令窗口输出函数。 调用格式: disp(输出项) 注:输出项为字符串或矩阵。 例如 A=Hello,MATLAB; disp(A) 输出为: Hello,MATLAB三程序设计(一)选择结构 选择结构的语句有if语句和switch语句。 1 if语句语句 格式一: if 条件 语句组 end三程序设计 格式二: if 条件 语句组1 else 语句组2

19、end(一)选择结构 格式三: if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件m 语句组m else 语句组m+1 end三程序设计【例4】 输入三角形的三条边,求面积。 A=input(请输入三角形的三条边:); if A(1)+A(2)A(3) & A(1)+A(3)A(2) & A(2)+A(3)A(1) p=(A(1)+A(2)+A(3)/2; s=sqrt(p*(p-A(1)*(p-A(2)*(p-A(3); disp(s); else disp(不能构成一个三角形。) end运行: 请输入三角形的三条边:4 5 6 9.9216三程序设计

20、(一)选择结构【例5】 输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为其他字符则原样输出。 c=input(,s); if c=A & c=a& c=z disp(setstr(abs(c)-1); else disp(c); end三程序设计(一)选择结构2 switch语句语句 switch语句根据变量或表达式的取值不同,分别执行不同的语句。其格式为: switch 表达式 case 值1 语句组1 case 值2语句组2 case 值m 语句组m otherwise 语句组m+1 end三程序设计(一)选择结构【例6】 根据变量 num

21、 的值来决定显示的内容。 num=input(请输入一个数); switch num case -1 disp(I am a teacher.); case 0 disp(I am a student.); case 1 disp(You are a teacher.); otherwise disp(You are a student.); end三程序设计(一)选择结构(二)循环结构 实现循环结构的语句:for语句和while语句。 1 for语句:语句: 格式: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 注:其中表达式1的值为循环变量的初值,表达式2的值为步长,

22、表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。三程序设计 2 while语句语句 格式为: while (条件) 循环体语句 end三程序设计(二)循环结构3 循环的嵌套循环的嵌套 如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。 多重循环的嵌套层数可以是任意的。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。三程序设计(二)循环结构【例8】 求100,1000以内的全部素数。 n=0; for m=100:1000 flag=1; j=m-1; i=2; while i=j & fla

23、g if rem(m,i)=0 flag=0; end i=i+1; end if flag n=n+1; prime(n)=m; end end prime %变量prime存放素数三程序设计(二)循环结构四函数文件 函数文件是另一种形式的M文件,每一个函数文件都定义一个函数。事实上,MATLAB提供的标准函数大部分都是由函数文件定义的。四. 函数文件1函数文件格式函数文件格式 函数文件由function语句引导,其格式为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体 注:其中函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输

24、出形参多于1个时,则应该用方括号括起来。【例9】 编写函数文件求小于任意自然数n的Fibonacci(斐波纳契)数列各项。 function f=ffib(n) %用于求Fibonacci数列的函数文件 %f=ffib(n) %1999年9月30日编 f=1,1; i=1; while f(i)+f(i+1)n f(i+2)=f(i)+f(i+1); i=i+1; end将以上函数文件以文件名ffib.m存盘,然后在MATLAB命令窗口输入以下命令,可求小于2 000的Fibonacci数。 ffib(2000)四. 函数文件2函数调用函数调用 函数文件编制好后,就可调用函数进行计算了。如上面

25、定义ffib函数后,调用它求小于2000的Fibonacci数。 函数调用的一般格式是: 输出实参表=函数名(输入实参表)四. 函数文件【例10】 利用函数文件,实现直角坐标(x,y)与极坐标(,)之间的转换。 函数文件tran.m: function gama,theta=tran(x,y) gama=sqrt(x*x+y*y); theta=atan(y/x); 调用tran.m的命令文件main1.m: x=input(Please input x=:); y=input(Please input y=:); gam,the=tran(x,y); gam the已知转换公式为: 极坐标的

26、矢径:= 极坐标的幅角:=四. 函数文件【例11】 利用函数的递归调用,求n!。 function f=factor(n) if n1.0) B = 这里 是空矩阵的符号,B=find(A1.0)表示列出矩阵A中值大于1.0的元素的序号。当不能满足括号中的条件时,返回空矩阵。另外,也可以将空矩阵赋给一个变量,如: B= B = 一、 特殊矩阵的实现二、矩阵的特征值 与特征向量 对于NN阶方阵A,所谓A的特征值问题是:求数和N维非零向量x(通常为复数),使之满足下式: A. x= x 则称为矩阵A的一个特征值(特征根),而非零向量x为矩阵A的特征值所对应的特征向量。 对一般的N N阶方阵A,其特

27、征值通常为复数,若A为实对称矩阵,则A的特征值为实数。二、矩阵的特征值与特征向量 MATLAB提供的内部函数eig可以用来计算特征值与特征向量。eig函数的使用格式有五种,其中常见的有E=eig(A)、V,D=eig(A)和V,D=eig(A,nobalance)三种,另外两种格式用来计算矩阵的广义特征值与特征向量:E=eig(A,B)和V,D=eig(A,B)。二、矩阵的特征值与特征向量 (1) E=eig(A):由eig(A)返回方阵A的N个特征值,构成向量E; (2) V,D=eig(A):由eig(A)返回方阵A的N个特征值,构成NN阶对角阵D,其对角线上的N个元素即为相应的特征值,同

28、时将返回相应的特征向量赋予NN阶方阵V的对应列,且A、V、D满足AV=V D; (3) V,D=eig(A,nobalance):本格式的功能与格式(2)一样,只是格式(2)是先对A作相似变换(balance),然后再求其特征值与相应的特征向量;而本格式则事先不作相似变换;二、矩阵的特征值与特征向量 (4) E=eig(A,B):由eig(A,B)返回NN阶方阵A和B的N个广义特征值,构成向量E。 (5) V,D=eig(A,B):由eig(A,B)返回方阵A和B的N个广义特征值,构成N N阶对角阵D,其对角线上的N个元素即为相应的广义特征值,同时将返回相应的特征向量构成NN阶满秩矩阵,且 满

29、足AV=B V D。二、矩阵的特征值与特征向量 【例例5 5】试用格式(1)求下列对称矩阵A的特征值;用格式(2)求A的特征值和相应的特征向量,且验证之。 A = 1.0000 1.0000 0.5000 1.0000 1.0000 0.2500 0.5000 0.2500 2.0000 ; 执行eig(A)将直接获得对称矩阵A的三个实特征值:二、矩阵的特征值与特征向量 eig(A) ans = -0.0166 1.4801 2.5365 而下列命令则将其三个实特征值作为向量赋予变量E: E=eig(A) E = -0.0166 1.4801 2.5365二、矩阵的特征值与特征向量三、行列式的

30、值 MATLAB提供的内部函数det用来计算矩阵的行列式的值。设矩阵A为一方阵(必须是方阵),求矩阵A的行列式值的格式为:det(A)。三、行列式的值 【例例6 6】利用随机函数产生一个三阶方阵A,然后计算方阵之行列式的值。 A=rand(3) A = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 det(A) ans = 0.4289四、 矩阵求逆及其 线性代数方程组求解 1 . 矩阵求逆矩阵求逆 若方阵A,B满足等式 A*B = B*A = I (I为单位矩阵) 则称A为B的逆矩阵,或称B为A的逆矩阵。这时A,

31、B都称为可逆矩阵(或非奇异矩阵、或满秩矩阵),否则称为不可逆矩阵(或奇异矩阵、或降秩矩阵)。四、矩阵求逆及其线性代数方程组求解 【例例7 7】试用inv函数求方阵A的逆阵A-1赋值给B,且验证A与A-1是互逆的。A=1 -1 1;5 -4 3;2 1 1;B=inv(A)B = -1.4000 0.4000 0.2000 0.2000 -0.2000 0.4000 2.6000 -0.6000 0.2000A*Bans = 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000B*Aans = 1.0000 0.0000 0

32、.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000四、矩阵求逆及其线性代数方程组求解 2. 矩阵求逆解法矩阵求逆解法 利用求系数矩阵A的逆阵A-1,我们可以得到矩阵求逆解法。对于线性代数方程组Ax=b,等号两侧各左乘A-1,有: A-1Ax=A-1b 由于A-1A=I,故得: x=A-1b四、矩阵求逆及其线性代数方程组求解 【例例8 8】试用矩阵求逆解法求解例6.20中矩阵A为系数矩阵的线性代数方程组Ax=b的解。 A=1 -1 1;5 -4 3;2 1 1; b=2;-3;1; x=inv(A)*b x = -3.8000 1.4000 7.200

33、0四、矩阵求逆及其线性代数方程组求解 3. 直接解法直接解法 对于线性代数方程组Ax=b,我们可以运用左除运算符“”象解一元一次方程那样简单地求解: x=Ab 当系数矩阵A为N*N的方阵时,MATLAB会自行用高斯消去法求解线性代数方程组。若右端项b为N*1的列向量,则x=Ab可获得方程组的数值解x(N*1的列向量);若右端项b为N*M的矩阵,则x=Ab可同时获得同一系数矩阵A、M个方程组数值解x(为N*M的矩阵),即x(:,j)=Ab(:,j),j=1,2,M。四、矩阵求逆及其线性代数方程组求解132321112345111xxx543321112345111yyy四、矩阵求逆及其线性代数方

34、程组求解 解法解法1:分别解方程组 (1)Ax=b1;(2)Ay=b2 A=1 -1 1;5 -4 3;2 1 1; b1=2;-3;1; b2=3;4;-5; x=Ab1 x = -3.8000 1.4000 7.2000y=Ab2 -3.6000 -2.2000 4.4000得两个线性代数方程组的解: (1) x1= -3.8, x2= 1.4, x3= 7.2; (2) y1= -3.8, y2= 1.4, y3= 7.2四、矩阵求逆及其线性代数方程组求解 解法解法2:将两个方程组连在一起求解:Az=b b=2 3;-3 4;1 -5 z=Ab z = -3.8000 -3.6000 1

35、.4000 -2.2000 7.2000 4.4000 很明显,这里的解z的两个列向量便是前面分别求得的两组解x和y四、矩阵求逆及其线性代数方程组求解习题 1、解方程组Axb,分别用求逆解法与直接解法求其解。 2、编一个m程序,求N阶方阵A的行列式的值。00001,2100012100012100012100012bA常用函数一:数学函数数学函数有:三角函数、指数函数、复数函数、取整和求余函数。 三角函数:sin、cos、asin(反正弦)、acos(反余弦)、tan(正切)、atan(反正切)、cot(余切)、acot(反余切)等。 指数函数:exp(以e为底的指数)、log(自然对数)、l

36、og10(以10为底的对数)、log2(以2为底的对数)、 pow2(2的幂次)、sqrt(开平方)等。 复数函数:abs(绝对值或复数的模)、angle(相位角)、complex(由实部和虚部构造复数)、conj(复数的共轭)、real(复数的实部)、imag(复数的虚部)等。 取整和求余函数:fix(朝0方向取整)、floor(朝负无穷方向取整)、ceil(朝正无穷方向取整)、rem(除后取余数)、sign(符号函数)、round(四舍五入)到最近的整数)等。 常用函数二矩阵和数组(向量)函数det(方阵的行列式)、inv(矩阵的逆)、norm(矩阵或矢量的范数)、rank(矩阵的秩)、s

37、vd(矩阵的奇异值分解)、trace(矩阵的迹)、eig(矩阵的特征值和特征矢量)等 逻辑和关系函数: all(x) 检查x是否全为1(true); any(x) 检查x是否有不为0的元素; exist(x) 检查变量的存在性和类别 ;find(x) 找出非0元素的位置标识 ;isempty(x) 检查是否为空矩阵 ;isinf(x) 检查是否为无穷大;isglobal(x) 检查是否为全局变量 ;issparse(x) 检查是否为稀疏矩阵 isstr(x) 检查是否为字符串;and(a,b) 逻辑与; or(a,b) 逻辑或;not(a) 逻辑非; xor(a,b) 逻辑异或 。常用函数三1

38、)零矩阵 zeros(n) nxn的零阵 ,zeros(n,m) n行m列的零阵 2)全1阵 ones(n,m) n行m列的全1阵 3)单位阵 eye(n) nxn的单位阵 4)随机阵 randn(n,m) 元素为正态分布随机阵 5)空矩阵 x= 将一个0 x 0阶的空矩阵赋给变量x 6)多项式的伴随矩阵:compan(x) 是线性代数中讲过的重要矩阵。 7)对矩阵的特殊操作: rot90(a) 将a矩阵旋转90度 ;fliplr(a) 将a矩阵的列反序 ;flipud(a) 将a矩阵的行反序 ;diag(a,n) 抽取矩阵a的第n条对角线上的所有元素;tril(a) 提取矩阵的下三角部分 ;

39、triu(a) 提取矩阵的上三角部分 ;reshape 改变矩阵的阶数,按列的顺序重排。 程序程序M M文件与函数文件与函数M M文件的编辑文件的编辑程序程序M M文件可以在命令窗口中直接执行,而函数文件可以在命令窗口中直接执行,而函数M M文件一般由其它语文件一般由其它语句来调用,用户不能单独键入其文件名来运行一个函数句来调用,用户不能单独键入其文件名来运行一个函数M M文件。文件。函数函数M M文件也称为文件也称为M M函数。函数。 例:例:Fibonacci numbersFibonacci numbers为斐波纳契数列,它是一种整数数列,为斐波纳契数列,它是一种整数数列,其中每数等于前

40、面两数之和,程序其中每数等于前面两数之和,程序中中f f和和i i变量为全局变量,该程变量为全局变量,该程序执行完后,仍保留在工作空间中。序执行完后,仍保留在工作空间中。 f=1 1; i=1;while f(i)+f(i+1),可以在命令窗口键入变量名,以检查各变量的内容是否正确,也可以键入命令修改变量。当检查和修改完成后,键入return命令。将控制权交还给系统,程序将继续运行。 4)如果怀疑某个函数文件有问题,可以在函数的定义行前加“%”,使之变成命令文件进行调试。 5)直接在M文件编辑器界面的行号和程序窗口横线上点击鼠标来设置或去掉断点。 调试器的使用 如果文件规模较大,或文件嵌套复杂

41、,可以借助专门的调试工具-程序调试器。调试器位于编辑/调试窗口中,使用调试器调试的一般步骤如下: 1)在Debug菜单中选择Run开始运行; 2)出现错误时,运行自动停止,根据错误信息找到相应的程序位置; 3)在可能出现错误的程序行位置添加断点。如果错误在被调用的函数中,断点应设置在被调用的函数前。设置断点是高级语言程序调试的重要手段之一; 4)重新运行后,程序会自动暂停在断点处,将鼠标指向感兴趣的变量名,可以看到变量的内容,此时相当于处于keyboard状态; 5)重新运行,检查是否有新的错误。 程序设计的优化 1尽量用矩阵运算代替循环运算: 循环运算是MATLAB运算的一个弱点,在程序设计

42、时,应尽量避免循环运算,采用矩阵运算,以加快运行速度。 2数据的预定义: 虽然在MATLAB中没有规定变量使用时必须预先定义,但对于未定义的变量,如果操作过程中出现越界赋值等问题,系统将不得不对变量进行扩充,这大大降低了运行效率。所以对于可能出现变量维数不断扩大的问题时,应当预先估计变量可能出现的最大维数,进行定义,预先分配内存空间。 第四讲 绘图功能作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即方便又高效。4.1 二维图形二维图形 一、一、 plot函数函数 函数格式:plot(

43、x,y) 其中x和y为坐标向量 函数功能:以向量x、y为轴,绘制曲线。 【例例1 1】 在区间0X2内,绘制正弦曲线Y=SIN(X),其程序为:x=0:pi/100:2*pi;y=sin(x);plot(x,y) 【例例2 2】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2) plot函数还可以为plot(x,y1,x,y2,x,y3,)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,为Y轴,在同一幅图内绘制出多条曲线。4.1 二维图形一、一、 plot函数

44、函数一、一、 plot函数函数plot函数是最基本的绘图函数函数是最基本的绘图函数,其基本的调用格式为:其基本的调用格式为:plot(y)-绘制向量绘制向量y对应于其元素序数的二维曲线图,如果对应于其元素序数的二维曲线图,如果y为为 复数向量,则绘制虚部对于实部的二维曲线图。例复数向量,则绘制虚部对于实部的二维曲线图。例sum3sum33 3 plot(x,y)-绘制由绘制由x,y所确定的曲线所确定的曲线 根据根据x y的维数有多种形式的维数有多种形式 plot(x1, y1, 选项选项1, x2, y2, 选项选项2, )-多组变量绘图多组变量绘图 选项是指为了区分多条曲线的颜色、线型及标记

45、点而设定的曲选项是指为了区分多条曲线的颜色、线型及标记点而设定的曲线的属性线的属性 。 plotyy(x1,y1,x2,y2)-绘制由绘制由x1,y1和和x2,y2确确定的两组曲线,其中定的两组曲线,其中x1,y1的坐标轴在图形窗口的左的坐标轴在图形窗口的左侧,侧,x2,y2的坐标轴在图形窗口的右侧。的坐标轴在图形窗口的右侧。 (一)线型与颜色(一)线型与颜色 格式:格式:plot(x,y1,cs,.) 其中c表示颜色, s表示线型。4.1 二维图形一、一、 plot函数函数 【例3】 用不同线型和颜色重新绘制例4.2图形,其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=c

46、os(x);plot(x,y1,go,x,y2,b-.) 其中参数go和b-.表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。线型、标记、颜色字符串的可能取值选项 意义 选项 意义r 红色 - 实线m 粉红 - 虚线g 绿色 : 点线c 青色 -. 点划线b 兰色 . 用点号绘制各数点w 白色 用上三角绘制各数据点y 黄色 + 用+号绘制各数据点k 黑色 v 用下三角绘制各数据点s或squar 用正方形绘制各数据点 * 用*号绘制各数据点p 用五角星绘制各数据点 用右三角绘制各数据点d或diamond 用菱形绘制各数据点 。 用。号绘制各数据点h

47、h 用六角星绘制各数据点 用左三角绘制各数据点 (二)图形标记(二)图形标记 在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。 title(加图形标题); xlabel(加X轴标记); ylabel(加Y轴标记); text(X,Y,添加文本); 4.1 二维图形一、一、 plot函数函数 (三)设定坐标轴(三)设定坐标轴用户若对坐标系统不满意,可利用axis命令对其重新设定。axis(xmin xmax ymin ymax) 设定最大和最小值axis (auto) 将坐标系统返回到自动缺省状态axis (square) 将当前

48、图形设置为方形axis (equal) 两个坐标因子设成相等axis (off) 关闭坐标系统axis (on) 显示坐标系统4.1 二维图形一、一、 plot函数函数 【例例4 4】 在坐标范围0X2,-2Y2内重新绘制正弦曲线,其程序为:x=linspace(0,2*pi,60);生成含有60个数据元素的向量Xy=sin(x);plot(x,y);axis (0 2*pi -2 2);设定坐标轴范围4.1 二维图形一、一、 plot函数函数 (四)加图例(四)加图例 给图形加图例命令为legend。该命令把图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到希望的位置。 格式:leg

49、end(图例说明图例说明,图例说明图例说明); 4.1 二维图形一、一、 plot函数函数 【例例5 5】 为正弦、余弦曲线增加图例,其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2, -); legend(sin(x),cos(x); (一)(一)subplot(m,n,p) 该命令将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。4.1 二维图形二、 subplot函数 【例6】 在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:x=linspace(0,2*pi

50、,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps); eps为系统内部常数ct=cos(x)./(sin(x)+eps); subplot(2,2,1); 分成22区域且指定1号为活动区plot(x,y);title(sin(x); axis (0 2*pi -1 1); subplot(2,2,2);plot(x,z);title(cos(x);axis (0 2*pi -1 1);subplot(2,2,3);plot(x,t);title(tangent(x);axis (0 2*pi -40 40);subplot(2,2,4);plot(x,c

51、t);title(cotangent(x);axis (0 2*pi -40 40);4.1 二维图形二、二、subplot函数函数 (二)多图形窗口(二)多图形窗口 需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。 每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。句柄显示在图形窗口的标题栏中,即图形窗口标题。用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。4.1 二维图形二、二、subplot函数函数 重新绘制上例4个图形,程序变动后如

52、下:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); H1=figure; 创建新窗口并返回句柄到变量H1plot(x,y); 绘制图形并设置有关属性title(sin(x); axis (0 2*pi -1 1); H2=figure; 创建第二个窗口并返回句柄到变量H2plot(x,z); 绘制图形并设置有关属性title(cos(x);axis (0 2*pi -1 1);H3=figure; 同上plot(x,t);title(tangent(x);axis

53、(0 2*pi -40 40);H4=figure; 同上plot(x,ct);title(cotangent(x);axis (0 2*pi -40 40);4.1 二维图形二、二、subplot函数函数 (三)(三)hold命令命令 若在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形保持命令hold。发出命令hold on后,再执行plot命令,在保持原有图形或曲线的基础上,添加新绘制的图形。4.1 二维图形二、二、subplot函数函数 阅读如下程序: x=linspace(0,2*pi,60); y=sin(x); z=cos(x); plot(x,y,b); 绘制正弦

54、曲线 hold on; 设置图形保持状态 plot(x,z,g); 保持正弦曲线同时绘制余弦曲线 axis (0 2*pi -1 1); legend(cos,sin); hold off 关闭图形保持4.1 二维图形二、二、subplot函数函数4.2 特殊坐标图形特殊坐标图形 一、一、 对数坐标图形对数坐标图形 (一)(一)loglog(x,y) 双对数坐标双对数坐标 【例例7 7】 绘制y=|1000sin(4x)|+1的双对数坐标图。程序为: x=0:0.1:2*pi; y=abs(1000*sin(4*x)+1;loglog(x,y); 双对数坐标绘图命令 (二)单对数坐标(二)单对

55、数坐标 以X轴为对数重新绘制上述曲线,程序为:x=0:0.01:2*piy=abs(1000*sin(4*x)+1semilogx(x,y); 单对数X轴绘图命令 同样,可以以Y轴为对数重新绘制上述曲线,程序为:x=0:0.01:2*piy=abs(1000*sin(4*x)+1semilogy(x,y); 单对数Y轴绘图命令4.2特殊坐标图形 二、二、 极坐标图极坐标图函数polar(theta,rho)用来绘制极坐标图,theta为极坐标角度,rho为极坐标半径 【例例8 8】 绘制sin(2*)*cos(2*)的极坐标图,程序为:theta=0:0.01:2*pi;rho=sin(2*t

56、heta).*cos(2*theta);polar(theta,rho); 绘制极坐标图命令title(polar plot);4.2特殊坐标图形4.3 其它图形函数其它图形函数 除plot等基本绘图命令外,Matlab系统提供了许多其它特殊绘图函数,这里举一些代表性例子,更详细的信息用户可随时查阅在线帮助,其对应的M-file文件存放在系统matlabtoolboxmatlab目录下。4.3 其它图形函数其它图形函数 一、阶梯图形一、阶梯图形 函数stairs(x,y)可以绘制阶梯图形,如下列程序段:x=-2.5:0.25:2.5;y=exp(-x.*x);stairs(x,y); 绘制阶梯

57、图形命令title(stairs plot);4. 3 其它图形函数4.3 其它图形函数其它图形函数 二、条形图形二、条形图形 函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形x=-2.5:0.25:2.5;y=exp(-x.*x);bar(x,y); 绘制条形图命令4. 3 其它图形函数4.3 其它图形函数其它图形函数 三、填充图形三、填充图形 fill(x,y,c)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。字符 c 规定填充颜色,其取值前已叙述。 下述程序段绘制一正方形并以黄色填充:4. 3 其它图形函数4.3 其它图形函数其它图形函数 x=0 1 1

58、 0 0; 正方形顶点坐标向量 y=0 0 1 1 0; fill(x,y,y);绘制并以黄色填充正方形图 再如: x=0:0.025:2*pi; y=sin(3*x); fill(x,y,0.5 0.3 0.4); 颜色向量 Matlab系统可用向量表示颜色,通常称其为颜色向量。基本颜色向量用r g b表示,即RGB颜色组合;以RGB为基本色,通过 r,g,b在01范围内的不同取值可以组合出各种颜色。4. 3 其它图形函数二维绘图函数小结二维绘图函数小结 plot 二维图形基本函数 fill 填充二维多边图形 polar 极坐标图 bar 条形图 loglog 双对数坐标图 semilogx

59、 X轴为对数的坐标图 semilogy Y轴为对数的坐标图 stairs 阶梯形图 axis 设置坐标轴 clf 清除图形窗口内容 close 关闭图形窗口figure 创建图形窗口grid 放置坐标网格线gtext 用鼠标放置文本hold 保持当前图形窗口内容subplot 创建子图text 放置文本title 放置图形标题xlabel 放置X轴坐标标记ylabel 放置Y轴坐标标记4. 3 其它图形函数4.4 三维图形三维图形 一、一、 plot3函数函数 最基本的三维图形函数为plot3,它是将二维函数plot的有关功能扩展到三维空间,用来绘制三维图形。 函数格式:plot3(x1,y1

60、,z1,c1,x2,y2,z2,c2,) 其中x1,y1,z1表示三维坐标向量,c1,c2表示线形或颜色。 函数功能:以向量x,y,z为坐标,绘制三维曲线。 【例例9 9】 绘制三维螺旋曲线,其程序为: t=0:pi/50:10*pi; y1=sin(t),y2=cos(t); plot3(y1,y2,t); title(helix),text(0,0,0,origin); xlabel(sin(t),ylabel(cos(t),zlabel(t); grid;4.4 三维图形 二、二、mesh函数函数 mesh函数用于绘制三维网格图。在不需要绘制特别精细的三维曲面结构图时,可以通过绘制三维网格图来表示三维曲面。三维曲面的网格图最突出的优点是:它较好地解决了

温馨提示

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

评论

0/150

提交评论