MATLAB程序设计电子教案第3章.ppt

上传人:牧羊曲112 文档编号:6512045 上传时间:2023-11-08 格式:PPT 页数:40 大小:263.99KB
返回 下载 相关 举报
MATLAB程序设计电子教案第3章.ppt_第1页
第1页 / 共40页
MATLAB程序设计电子教案第3章.ppt_第2页
第2页 / 共40页
MATLAB程序设计电子教案第3章.ppt_第3页
第3页 / 共40页
MATLAB程序设计电子教案第3章.ppt_第4页
第4页 / 共40页
MATLAB程序设计电子教案第3章.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《MATLAB程序设计电子教案第3章.ppt》由会员分享,可在线阅读,更多相关《MATLAB程序设计电子教案第3章.ppt(40页珍藏版)》请在三一办公上搜索。

1、第3章 MATLAB 程序设计(1),2,主要内容:,关系运算和逻辑运算规则;常用的逻辑函数;函数文件的定义和调用;数据文件的读写。,3,3.1关系运算,3.1.1 概述 关系运算表达式的计算结果是一个由0和1组成的逻辑数组(logical array),在数组中用1表示真,0表示假。,4,3.1.2 关系运算符,6种关系运算符(大于)=(大于或等于)=(等于)=(不等于),5,3.1.3 关系运算规则,关系运算符的运算法则为:1 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。2 当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算

2、规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。,6,3 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。4 对于复数,、=,仅对参加比较变量的实部进行比较,=和=,则同时对实部和虚部进行比较。,7,例3-1 分析语句a=2+2=4的执行结果,例3-2 分析语句a=fate;b=cake;result=a=b的执行结果。,8,例3-3 已知a=1 2 3 4;b1=3,b2=0.1 2.1 2.9 4.1,

3、分析a与b1,b2的六种关系运算的结果。,9,3.1.4 关系运算的应用,1 find函数函数find函数的格式为:,indices=find(X)功能:返回数组X的非零元素的序号,如无非零元素,返回空数组。,i,j=find(X)功能:返回数组X的非零元素的行号和列号,此格式很适合稀疏数组。,i,j,v=find(X)功能:返回数组X的非零元素的行号、列号以及列向量。,10,例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

4、,first)%找出第一个不为零的元素的行号、列号i j=find(A,1,last)%找出最后一个不为零的元素的行号、列号,11,2 提取子数组,建立逻辑数组的函数logical的格式:logical(x)功能:转换数组x为逻辑数组,12,例3-5 演示用逻辑数组来提取子数组 的方法,a=1 2;3 4;5 6;l1=logical(1 0 1)%给出逻辑向量l1l2=logical(1 1 0)%给出逻辑向量l2a(l1,l2)%提取a的部分元素,即1、3行且1、2列的元素,13,例3-6 建立任意的33的矩阵,并求 出能被3整除的元素。,A=1 0 3;2 9-1;-3-9 0;%生成3

5、3的矩阵AP=rem(A,3)=0%判断A的元素是否可以被3整除A(P)%求出被3整除的元素如果求上述矩阵中能被5整除的元素呢?P=rem(A,5)=0,14,例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),15,3.2 逻辑运算,3.2.1 逻辑运算符和运算法则,5种逻辑运算符:&(与)|(或)(非)&(先决与)|(先

6、决或),16,逻辑运算的运算法则为:,1)在逻辑运算中,确认非零元素为真,用1 表示,零元素为假,用0表示。2)设参与逻辑运算的是两个标量a和b,那么:a&b a,b全为非零时,运算结果为1,否则为0。a|b a,b中只要有一个非零,运算结果为1。a 当a是零时,运算结果为1;当a非零时,运算结果为0。,17,&(先决与)当该逻辑运算符的左边为1(真)时,才继续执行该符号右边的运算。|(先决或)当逻辑运算符的左边为1(真)时,就不需要继续执行该符号右边的运算,而立即得出该逻辑运算结果为1(真);否则,就要继续执行该符号右边的运算。注意:&(先决与)和|(先决或)对标量计算无意义。,18,3)若

7、参与逻辑运算的是两个同型矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。4)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同型的矩阵,其元素由1或0组成。5)逻辑非是单目运算符,也服从矩阵运算规则。,19,例3-8 求三阶和四阶的魔方矩阵中绝对值大于7、小于10的元素及元素的数目。,方法1a=magic(3);b=magic(4);%生成三阶和四阶的魔方矩阵x=abs(a)7%判断a、b元素是否绝对值大于7、小于10a(x),b(y)%求出绝对值大于7

8、、小于10的元素length(a(x),length(b(y)%求出绝对值大于7、小于10的元素的数目,20,x=find(abs(a)7&abs(a)7&abs(b)10)length(x)length(y)a(x)b(y),方法2 应用find函数,21,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进行列操作,根据相

9、应列是否包含非零元素,返回元素为1和0的一个行向量。,22,2 特殊数据判断函数,常用的特殊数据判断函数:isinf(A)返回一个与A同型的数组,该数组元素的值根据A的相应位置元素的值为无穷大inf时设置为1,否则为0。isnan(A)返回一个与A同型的数组,该数组元素的值根据A的相应位置元素的值为NaN 时设置为1,否则为0。isfinite(A)返回一个与A同型的数组,该数组元素的值根据A的相应位置元素的值为有限值时设置为1,否则为0。,23,当a=pi NaN Inf-Inf时,分析下列语句的执行结果,isinf(a)isnan(a)isfinite(a),24,例3-10 当A=-6,

10、NaN,Inf,5;-Inf,-pi,eps,0 时,分析下列语句的执行结果。,all(A)all(all(A)any(A)any(any(A)isnan(A)isinf(A)isfinite(A),25,3 数组类型函数,常用的数据类型函数如下:islogical(X)如果X是逻辑数组,则返回1;否则,返回0issparse(S)如果S是稀疏数组,则返回1;否则,返回0isreal(A)如果A是一个不带虚部的实矩阵,则返回1;否则,返回零。isempty(A)如果A是一个空数组,则返回1;否则返回0。,26,isequal(A,B)如果A和B是同型的,并且数组的元素也相同,则返回1;否则返回

11、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。,27,isfloat(A)如果A是浮点型数值数组,则返回1;否则返回0。ischar(s)判断s是否为字符串,返回1表示为字符串;否则,返回0。isletter(s1)在逐个字符的基础上比较字符的类别是否为字母,返回1表示为字母。iscell(C)判断C 是否为元胞数组,

12、如果是,返回1;否则返回0。isstruct(S)如果S是构架数组,返回1;否则,返回0。,28,例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),29,3.2.3 运算符优先级,MATLAB中各种运算符的优先级如下:(矩阵转置)、(矩阵幂)和.(数组转置)、.(数组幂)(逻辑非)

13、*(乘)、/(左除)、(右除)和.*(点乘)、./(点左除)、.(点右除)+、-(加减):(冒号)、=、=&(逻辑与)|(逻辑或)&(先决与)|(先决或),30,3.3 M文件,3.3.1 M文件概述 用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件和函数文件。两种工作方式:交互式的命令行工作方式和M文件的程序工作方式。,31,3.3.2 M文件的建立,1 建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法:1)菜单操作。2)命令操作。3)命令按钮操作。,32,3.4 分支语句,3.4.1 if 结构,格式1:if 条件 语句组 en

14、d,33,格式2:if 条件 语句组1 else 语句组2 end,34,格式3:if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件m 语句组m else 语句组m+1 end,35,例3-12 计算分段函数 的值。,36,3.4.2 switch-case结构,一般switch-case语句格式为:,switch 表达式 case 值1 语句组1 case 值2 语句组2 case 值m 语句组m otherwise 语句组m+1end,37,例 3-13 求分段函数 的值。,38,例3-14 通过键盘输入百分制成绩,输 出成绩的等级。,程序中90-100分为字符A表示,80-89分为字符B表示,70-79分为字符C表示,60-69分为字符D表示,60分以下为字符E表示。,39,3.4.3 try-catch结构,try-catch结构格式为:try 语句组1 catch 语句组2 end,40,例3-15 对n阶魔方阵的行进行引用,当“行 下标”超出魔方阵的最大行数时,改 为对最后一行的引用,并显示“出错”警告。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号