MATLAB程序设计电子教案第3章.ppt_第1页
MATLAB程序设计电子教案第3章.ppt_第2页
MATLAB程序设计电子教案第3章.ppt_第3页
MATLAB程序设计电子教案第3章.ppt_第4页
MATLAB程序设计电子教案第3章.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

第3章 MATLAB 程序设计(1),MATLAB 7.X程序设计,2/40,主要内容:,关系运算和逻辑运算规则; 常用的逻辑函数; 函数文件的定义和调用; 数据文件的读写。,MATLAB 7.X程序设计,3/40,3.1关系运算,3.1.1 概述 关系运算表达式的计算结果是一个由0和1组成的逻辑数组(logical array),在数组中用1表示真,0表示假。,MATLAB 7.X程序设计,4/40,3.1.2 关系运算符,6种关系运算符 (大于) = (大于或等于) = (等于) = (不等于),MATLAB 7.X程序设计,5/40,3.1.3 关系运算规则,关系运算符的运算法则为: 1 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。 2 当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。,MATLAB 7.X程序设计,6/40,3 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。 4 对于复数,、=,仅对参加比较变量的实部进行比较,= = 和 = ,则同时对实部和虚部进行比较。,MATLAB 7.X程序设计,7/40,例3-1 分析语句a=2+2=4的执行结果,例3-2 分析语句 a=fate;b=cake;result=a=b的执行结果。,MATLAB 7.X程序设计,8/40,例3-3 已知a=1 2 3 4;b1=3,b2=0.1 2.1 2.9 4.1,分析a与b1 ,b2的六种关系运算的结果。,MATLAB 7.X程序设计,9/40,3.1.4 关系运算的应用,1 find函数 函数find函数的格式为:,indices = find(X) 功能:返回数组X的非零元素的序号,如无非零元素,返回空数组。,i,j = find(X) 功能:返回数组X的非零元素的行号和列号,此格式很适合稀疏数组。,i,j,v = find(X) 功能:返回数组X的非零元素的行号、列号以及列向量。,MATLAB 7.X程序设计,10/40,例3-4 已知A=4,-65,-54,0,6;56,0,67, - 45,0,分析下列语句的功能。,find(A4) %找出大于4的元素的序号 i j=find(A,1) %找出一个不为零的元素的行号、列号 i j=find(A,1,first) %找出第一个不为零的元素的行号、列号 i j=find(A,1,last) %找出最后一个不为零的元素的行号、列号,MATLAB 7.X程序设计,11/40,2 提取子数组,建立逻辑数组的函数logical的格式: logical(x) 功能:转换数组x为逻辑数组,MATLAB 7.X程序设计,12/40,例3-5 演示用逻辑数组来提取子数组 的方法,a=1 2;3 4;5 6; l1=logical(1 0 1) %给出逻辑向量l1 l2=logical(1 1 0) %给出逻辑向量l2 a(l1,l2) %提取a的部分元素,即1、3行且1、2列的元素,MATLAB 7.X程序设计,13/40,例3-6 建立任意的33的矩阵,并求 出能被3整除的元素。,A=1 0 3 ;2 9 -1;-3 -9 0; %生成33的矩阵A P=rem(A,3)=0 %判断A的元素是否可以被3整除 A(P) %求出被3整除的元素 如果求上述矩阵中能被5整除的元素呢? P=rem(A,5)=0,MATLAB 7.X程序设计,14/40,例3-7 求三阶魔方矩阵中绝对值大于7的元素。,a=magic(3); 方法1 x=abs(a)7;y=abs(b)7; %判断a、 b元素是否绝对值大于7 a(x),b(y) %求出绝对值大于7的元素 方法2: 应用find函数 a=magic(3);b=magic(4); x=find(abs(a)7),y=find(abs(b)7),MATLAB 7.X程序设计,15/40,3.2 逻辑运算,3.2.1 逻辑运算符和运算法则,5种逻辑运算符: & (与) | (或) (非) & (先决与) | (先决或),MATLAB 7.X程序设计,16/40,逻辑运算的运算法则为:,1) 在逻辑运算中,确认非零元素为真,用1 表示,零元素为假,用0表示。 2) 设参与逻辑运算的是两个标量a和b,那么: a&b a,b全为非零时,运算结果为1,否则为0。 a|b a,b中只要有一个非零,运算结果为1。 a 当a是零时,运算结果为1;当a非零时,运算结果为0。,MATLAB 7.X程序设计,17/40,&(先决与) 当该逻辑运算符的左边为1(真)时,才继续执行该符号右边的运算。 | (先决或) 当逻辑运算符的左边为1(真)时,就不需要继续执行该符号右边的运算,而立即得出该逻辑运算结果为1(真);否则,就要继续执行该符号右边的运算。注意:&(先决与)和| (先决或)对标量计算无意义。,MATLAB 7.X程序设计,18/40,3) 若参与逻辑运算的是两个同型矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。 4) 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同型的矩阵,其元素由1或0组成。 5) 逻辑非是单目运算符,也服从矩阵运算规则。,MATLAB 7.X程序设计,19/40,例3-8 求三阶和四阶的魔方矩阵中绝对值大于7、小于10的元素及元素的数目。,方法1 a=magic(3);b=magic(4); %生成三阶和四阶的魔方矩阵 x=abs(a)7 %判断a、 b元素是否绝对值大于7、小于10 a(x),b(y) %求出绝对值大于7、小于10的元素 length(a(x),length(b(y) %求出绝对值大于7、小于10的元素的数目,MATLAB 7.X程序设计,20/40,x=find(abs(a)7&abs(a)7&abs(b)10) length(x) length(y) a(x) b(y),方法2 应用find函数,MATLAB 7.X程序设计,21/40,3.2.2 逻辑函数,1 关系逻辑函数 1) any any(x) 如果向量x中的有一个元素为非零值,那么返回1;否则,返回0。 any(A) 对矩阵A进行列运算,根据相应列是否所有元素都为非零值,返回一个元素为1和0的行向量。 2)all all(x) 如果向量x中所有的元素都是非零值,那么返回1;否则,返回0。 all(A) 对矩阵A进行列操作,根据相应列是否包含非零元素,返回元素为1和0的一个行向量。,MATLAB 7.X程序设计,22/40,2 特殊数据判断函数,常用的特殊数据判断函数: isinf(A) 返回一个与A同型的数组,该数组元素的值根据A的相应位置元素的值为无穷大inf时设置为1,否则为0。 isnan(A) 返回一个与A同型的数组,该数组元素的值根据A的相应位置元素的值为NaN 时设置为1,否则为0。 isfinite(A) 返回一个与A同型的数组,该数组元素的值根据A的相应位置元素的值为有限值时设置为1,否则为0。,MATLAB 7.X程序设计,23/40,当a=pi NaN Inf -Inf时,分析下列语句的执行结果,isinf (a) isnan (a) isfinite (a),MATLAB 7.X程序设计,24/40,例3-10 当A=-6,NaN,Inf,5;-Inf,-pi, eps,0 时,分析下列语句的执行结果。,all(A) all(all(A) any(A) any(any(A) isnan(A) isinf(A) isfinite(A),MATLAB 7.X程序设计,25/40,3 数组类型函数,常用的数据类型函数如下: islogical(X) 如果X是逻辑数组,则返回1;否则,返回0 issparse(S) 如果S是稀疏数组,则返回1;否则,返回0 isreal(A) 如果A是一个不带虚部的实矩阵,则返回1;否则,返回零。 isempty(A) 如果A是一个空数组,则返回1;否则返回0。,MATLAB 7.X程序设计,26/40,isequal(A,B) 如果A和B是同型的,并且数组的元素也相同,则返回1;否则返回0。 isscalar(S) 如果S是1 x 1的矩阵(标量),则返回1;否则返回0。 isvector(V) 如果V 是1 x n的矩阵(行向量)或n x 1的矩阵(列向量),则返回1;否则返回0。 isnumeric (A) 如果A是数值数组,则返回1;否则返回0。 isinteger(A) 如果A是整数型数值数组,则返回1;否则返回0。,MATLAB 7.X程序设计,27/40,isfloat(A) 如果A是浮点型数值数组,则返回1;否则返回0。 ischar(s) 判断s是否为字符串,返回1表示为字符串;否则,返回0。 isletter(s1) 在逐个字符的基础上比较字符的类别是否为字母,返回1表示为字母。 iscell(C) 判断C 是否为元胞数组,如果是,返回1;否则返回0。 isstruct(S) 如果S是构架数组,返回1;否则,返回0。,MATLAB 7.X程序设计,28/40,例3-10 分析数据类型函数构成语句的执 行结果。,a=eye(4);islogical(a),b=logical(a);islogical(b) b=speye(4);issparse(b) a=ones(4);isreal(a) isfloat(single(pi) isfloat(double(pi) isfloat(int8(3) s=string;ischar(s),MATLAB 7.X程序设计,29/40,3.2.3 运算符优先级,MATLAB中各种运算符的优先级如下: (矩阵转置)、(矩阵幂)和.(数组转置)、.(数组幂) (逻辑非) *(乘)、/(左除)、(右除)和.*(点乘)、./(点左除)、.(点右除) +、-(加减) : (冒号) 、=、= &(逻辑与) |(逻辑或) &(先决与) |(先决或),MATLAB 7.X程序设计,30/40,3.3 M文件,3.3.1 M文件概述 用MATLAB语言编写的程序,称为M文件。 M文件可以根据调用方式的不同分为两类: 命令文件和函数文件。 两种工作方式: 交互式的命令行工作方式和M文件的程序工作方式。,MATLAB 7.X程序设计,31/40,3.3.2 M文件的建立,1 建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法: 1) 菜单操作。 2) 命令操作。 3) 命令按钮操作。,MATLAB 7.X程序设计,32/40,3.4 分支语句,3.4.1 if 结构,格式1: if 条件 语句组 end,MATLAB 7.X程序设计,33/40,格式2: if 条件 语句组1 else 语句组2 end,MATLAB 7.X程序设计,34/40,格式3: if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件m 语句组m else 语句组m+1 end,MATLAB 7.X程序设计,35/40,例3-12 计算分段函数 的值。,MATLAB 7.X程序设计,36/40,3.4.2 switch-case结构,一般switch-case语句格式为:,switch 表达式 case 值1 语句组1 case 值2 语句组2 case 值m 语句组m otherwise 语句组m+1 end,MATLAB 7.X程序设计,37/40,例 3-13 求分段函数 的值。,MATLAB 7.X程序设计,38

温馨提示

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

最新文档

评论

0/150

提交评论