河南理工大学Matlab7x教学课件第3章(1)1

上传人:我** 文档编号:113787577 上传时间:2019-11-09 格式:PPT 页数:50 大小:404KB
返回 下载 相关 举报
河南理工大学Matlab7x教学课件第3章(1)1_第1页
第1页 / 共50页
河南理工大学Matlab7x教学课件第3章(1)1_第2页
第2页 / 共50页
河南理工大学Matlab7x教学课件第3章(1)1_第3页
第3页 / 共50页
河南理工大学Matlab7x教学课件第3章(1)1_第4页
第4页 / 共50页
河南理工大学Matlab7x教学课件第3章(1)1_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《河南理工大学Matlab7x教学课件第3章(1)1》由会员分享,可在线阅读,更多相关《河南理工大学Matlab7x教学课件第3章(1)1(50页珍藏版)》请在金锄头文库上搜索。

1、第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

2、 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。 2 当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。,MATLAB 7.X程序设计,6/40,3 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。 4 对于复数,、=,仅对参加比较变量的实部进行比较,= = 和 = ,则同时对实部和虚部进行比较。

3、,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的非零元素

4、的行号和列号,此格式很适合稀疏数组。,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 提取子数组,建立逻辑数组的

5、函数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整

6、除 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种逻辑运算符: &

7、(与) | (或) (非) & (先决与) | (先决或),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(真)时,就不需要继续执行该符号右边

8、的运算,而立即得出该逻辑运算结果为1(真);否则,就要继续执行该符号右边的运算。注意:&(先决与)和| (先决或)对标量计算无意义。,MATLAB 7.X程序设计,18/40,3) 若参与逻辑运算的是两个同型矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。 4) 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同型的矩阵,其元素由1或0组成。 5) 逻辑非是单目运算符,也服从矩阵运算规则。,MATLAB 7.X程序设计,19/40,例3-8 求三阶和四阶

9、的魔方矩阵中绝对值大于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 逻

10、辑函数,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,否则为

11、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

12、(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。 isscala

13、r(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表示为字母

14、。 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

15、/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

16、/40,3.3.2 M文件的建立 M文件是由命令或函数构成的文本文件,可以用任何文本编辑程序来建立和编辑,一般常用且最为方便的是使用MATLAB提供的文本编辑器。M文件有命令文件(也称主程序文件)和函数文件两种,命令文件可包含多个函数文件。 1打开文本编辑器 打开MATLAB文本编辑器有以下三种方法: 1)菜单操作:单击操作桌面的File菜单,再单击NewScript命令; 2)命令操作:在命令窗口输入命令edit,单击Enter键; 3)命令按钮操作:单击操作桌面工具栏上的新建文件按钮 。,MATLAB 7.X程序设计,32/40,2建立新的M文件 在文本编辑器的文档窗口输入文件内容,输入完毕后,选择文本编辑器窗口File菜单的Save或Save As命令存盘,默认名字是Untitled。注意,M文件存放位置一般是MATLA

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号