MATLAB语言及应用-第二章.ppt
《MATLAB语言及应用-第二章.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言及应用-第二章.ppt(83页珍藏版)》请在三一文库上搜索。
1、第2章 基本语法,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制 基本绘图方法 M文件及程序调试,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制 基本绘图方法 M文件及程序调试,第2章 基本语法,第2章 基本语法,变量及其赋值 标识符与数 矩阵及其元素的赋值 复数 变量检查 基本赋值矩阵,第2章 基本语法,标识符与数 标识符是标识变量名、常量名、函数名和文件名的字符串的总称。在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多19个字符;函数和文件名则通常不超过8个字符。 在MATLAB中,变量名区分字母的大小写。MATLAB提供的标准函数名
2、以及命令名必须用小写字母。,第2章 基本语法,矩阵及其元素的赋值 MATLAB赋值语句有两种格式: (1) 标准赋值格式:变量=表达式(或数) (2) 不要等式左端而只剩下“表达式” 一般地,运算结果在命令窗口中显示出来。如果在语句的最后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运算的结果。 在MATLAB语句后面可以加上注释,注释以%开头,后面是注释的内容。,第2章 基本语法,例2.1 计算表达式的值,并将结果赋给变量x,然后显示出结果。 在MATLAB命令窗口输入命令: x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i) %计算表达式的值,第2章 基本语法,复
3、数 MATLAB的每一个元素都可以是复数,实数是复数的特例。对复数矩阵有两种赋值方法: (1) 将其元素逐个赋与复数 如,键入z=1+2i,3+4i,5+6i,7+8i (2) 将其实部和虚部分别赋值 如,键入z=1,3;5,7+2,4;6,8*i,第2章 基本语法,变量检查 1 预定义变量 在MATLAB工作空间中,还驻留几个由系统本身定义的变量。它们有特定的含义,在使用时,应尽量避免对这些变量重新赋值。 2 内存变量的管理 (1) 内存变量的显示与删除 who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。 clear命令用于删除MATLAB工作空间中的变量。 注
4、意,预定义变量不能被删除。,第2章 基本语法,(2) 内存变量文件 利用MAT文件(.mat)可以把当前MATLAB工作空间中的一些有用变量长久地保留下来。 MAT文件的生成和装入由save和load命令来完成。常用格式为: save 文件名 变量名表 load 文件名 变量名表,第2章 基本语法,基本赋值矩阵 一 矩阵的建立 1. 直接输入法 将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。例如 A=1 2 3;4 5 6;7 8 9 2. 利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。,第2
5、章 基本语法,3. 利用MATLAB函数建立矩阵 几个产生特殊矩阵的函数:zeros、ones、 eye、rand(随机数)、randn(正态随机数)。 这几个函数的调用格式相似,下面以产生零矩阵的zeros函数为例进行说明。其调用格式是: zeros(m) 产生mm零矩阵 zeros(m,n) 产生mn零矩阵。 zeros(size(A) 产生与矩阵A同样大小的零矩阵 相关的函数有:length(A)给出行数和列数中的较大者,即length(A)=max(size(A);ndims(A)给出A的维数。,第2章 基本语法,例2.3 分别建立33、32和与矩阵A同样大小的零矩阵。 (1)建立一个
6、33零矩阵:zeros(3) (2)建立一个32零矩阵:zeros(3,2) (3)建立与矩阵A同样大小零矩阵:zeros(size(A) 4. 建立大矩阵 大矩阵可由方括号中的小矩阵建立起来。例如 A=1 2 3;4 5 6;7 8 9; C=A,eye(size(A); ones(size(A),A,第2章 基本语法,二 冒号表达式 冒号表达式的一般格式: e1:e2:e3 三 矩阵的拆分 1. 矩阵元素 MATLAB允许用户对一个矩阵的单个元素进行赋值和操作。例如 A(3,2)=200 也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素按列编号,先第一列,再第二列,依次类推。,第2章 基本
7、语法,2. 矩阵拆分 (1)利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。 此外,还可利用一般向量和end运算符等来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。,第2章 基本语法,(2)利用空矩阵删除矩阵的元素 在MATLAB中,定义为空矩阵。给变量X赋空矩阵的语句为X=。
8、 注意,X=与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间,只是维数为0。 将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。,第2章 基本语法,四 多维矩阵 以三维矩阵为例,常用的方法有4种: (1)对二维矩阵进行扩充得到三维矩阵。 (2)若干个同样大小的二维矩阵进行组合得到三维矩阵。 (3)除产生单位矩阵的eye函数外,前面介绍的建立矩阵的函数都可以延伸到三维矩阵。 (4)用cat函数构建多维矩阵。一般调用格式是: cat(n,A1,A2,An) cat函数把大小相同的若干矩阵,沿第n维方向串接成高维矩阵。当n=1和2时,沿行和列的方向串
9、接,结果是二维矩阵。当n=3时,沿列的方向串接,结果是三维矩阵。,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制 基本绘图方法 M文件及程序调试,第2章 基本语法,第2章 基本语法,矩阵的初等运算 1. 基本算术运算 MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。 注意:运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。 2. 点运算 点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。 3MATLAB常用数学函数,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制 基本
10、绘图方法 M文件及程序调试,第2章 基本语法,第2章 基本语法,元素群运算 1. 数组及其赋值 MATLAB提供了两种为等间隔数组赋值的简易方法 (1) 用两个冒号组成等增量语句,其格式为: t=初值:增值:终值 (2) 用linspace函数。其格式为: linspace(初值、终值、点数) 2. 四则运算和幂次运算 矩阵中的所有元素按单个元素运算。 3. 元素群函数,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制 基本绘图方法 M文件及程序调试,第2章 基本语法,第2章 基本语法,一 关系运算 MATLAB提供了6种关系运算符:(大于)、=(大于或等于)、=(等于)、=(不等
11、于)。 关系运算符的运算法则。 二 逻辑运算 MATLAB提供了3种逻辑运算符:&(与)、|(或)和(非)。 运算法则。 三 流程控制语句,第2章 基本语法,1 if语句 在MATLAB中,if语句有3种格式。 (1)单分支if语句 语句格式为: if 条件 语句组 end 当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。,第2章 基本语法,例2.7计算分段函数值。 程序如下: x=input(请输入x的值:); if x=10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x); end
12、 y,第2章 基本语法,(3)多分支if语句 语句格式为: if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件m 语句组m else 语句组m+1 end,第2章 基本语法,例2.8 输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。程序如下: c=input(请输入一个字符,s); if c=A end,第2章 基本语法,2 while语句 while语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果
13、不成立则跳出循环。,第2章 基本语法,循环的嵌套 如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。 在设计多重循环时,要特别注意内、外循环之间的关系,以及各语句放置的位置,不要搞错。,第2章 基本语法,例2.5 一皮球从200米高度自由落下,每次落地后反弹回原高度的一半开始再次下落,试编写一段程序,(1)给出皮球弹起的次数及最后一次的反弹高度;(2)皮球经过的总路程。(提示:eps浮点相对差限,表示matlab能计算的数据差的最小值),第2章 基本语法,%s为总
14、路程,h为弹起高度,n为弹起次数 s=0;h=200;n=0; while heps s=s+h; h=h/2; s=s+h; n=n+1; end disp(经过的总路程) disp(s) disp(弹起次数) disp(n) disp(弹起高度) disp(h),第2章 基本语法,3 for语句 语句格式为: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 首先计算三个表达式的值,再将表达式1的值赋给循环变量,如果此时循环变量的值介于表达式1和表达式3的值之间,则执行循环体语句,否则结束循环的执行。执行完一次循环之后,循环变量自增一个表达式2的值,然后再判断循环变量的值
15、是否介于表达式1和表达式3之间,如果满足仍然执行循环体,直至不满足为止。这时将结束for语句的执行,而继续执行for语句后面的语句。,第2章 基本语法,for语句更一般的格式: for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。实际上,“表达式1:表达式2:表达式3”是一个仅为一行的矩阵(行向量),因而列向量是单个数据。 例2.6 求1到200之间所有奇数之和,写出程序和运行结果。,第2章 基本语法,程序如下: (1) i=1; s=0; while(i=200) s=s+i; i=i+2; end s,(2
16、)s=0; for i=1:2:200 s=s+i; end s,第2章 基本语法,例2.7 已知5个学生4门功课的成绩,求每名学生的总成绩。 程序如下: s=0; a=65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87; for k=a s=s+k; end disp(s);,第2章 基本语法,4 switch语句 其语句格式为: switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 case 表达式m 语句组m otherwise 语句组m+1 end,第2章 基本语法,例2.8 某商场对顾客所
17、购买的商品实行打折销售,已知打折标准,求所售商品的实际销售价格。 程序如下: price=input(请输入商品价格); switch fix(price/100) case 0,1 rate=0; case 2,3,4 rate=3/100; case num2cell(5:9) rate=5/100; case num2cell(10:24) rate=8/100; case num2cell(25:49) rate=10/100; otherwise rate=14/100; end price=price*(1-rate),第2章 基本语法,例2.9 使用switch- case结构完
18、成卷面成绩score的转换。 (1) score90分,优; (2) 90score80分,良; (3) 80score70分,中;(4) 70score60分,及格; (5) 60score,不及格;,第2章 基本语法,程序如下: score=input(请输入卷面成绩:score=); switch fix(score/10) case 9 grade=优 case 8 grade=良 case 7 grade=中 case 6 grade=及格 otherwise grade=不及格 end,第2章 基本语法,5 try语句 语句格式为: try 语句组1 catch 语句组2 end
19、try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。这种试探性执行语句是其他高级语言所没有的。,第2章 基本语法,例2.10 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。 程序如下: A=1,2,3;4,5,6; B=7,8,9;10,11,12; try C=A*B; catch C=A.*B; end C lasterr %显示出错原因,第2章 基本语法,例2.11 已知某图像文件名为kids,但不知其存储格式为.bmp还是.tif,试编程,正确读取该图像文件并
20、显示图像。 程序如下: try picture=imread(kids.bmp); catch picture=imread(kids.tif); end imshow(picture) lasterr %显示出错原因,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制 基本绘图方法 M文件及程序调试,第2章 基本语法,第2章 基本语法,基本绘图方法 1 直角坐标中的二维曲线 2 线型、点型和颜色 3 多条曲线的绘制 4 屏幕控制和其他二维绘图 5 三维曲线和曲面 6 彩色、光照和图像,第2章 基本语法,1 直角坐标中的二维曲线 绘制二维曲线的最基本函数: plot函数的基本用法 p
21、lot函数的基本调用格式为: plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 例1 在0X2区间内,绘制曲线y=sin(2x)。 程序如下: x=0:pi/100:2*pi; y=sin(2*pi*x); plot(x,y,+r),第2章 基本语法,说明: (1)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (2)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同色彩的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。 (3)plot函数最简单的调用格式是只包含一个输入参数:plot(x)。
22、,第2章 基本语法,例2 某工厂2000年各月总产值(单位:万元)分别为22、60、88、95、56、23、9、10、14、81、56、23,试绘制折线图以显示出该厂总产值的变化情况。 程序如下: p=22,60,88,95,56,23,9,10,14,81,56,23; plot(p),第2章 基本语法,2 线型、点型和颜色 MATLAB会自动设定所画曲线的颜色和线型。如果用户对默认值不满意,可以用命令控制线型。也可以根据需要选取不同的数据点的标记。 3 多条曲线的绘制 (1)用plot(t,y1,y2,)命令 t是向量,y=y1,y2,是矩阵,若t 是列(行)向量,则y的列(行)长与t长度
23、相同。y的行(列)数就是曲线的根数。 (2)用hold 命令 在画完前一张图后用hold命令保持住,在画下一条曲线。,第2章 基本语法,(3)含多个输入参数的plot函数 含多个输入参数的plot函数调用格式为: plot(x1,y1,x2,y2,xn,yn) (4)双纵坐标函数plotyy plotyy函数是MATLAB 5.X新增的函数。它能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为: plotyy(x1,y1,x2,y2) 其中x1y1对应一条曲线,x2y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1y1数据对,右纵坐标用于x2y2数据对。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 语言 应用 第二
链接地址:https://www.31doc.com/p-2090249.html