MATLAB逻辑运算与控制结构1_第1页
MATLAB逻辑运算与控制结构1_第2页
MATLAB逻辑运算与控制结构1_第3页
MATLAB逻辑运算与控制结构1_第4页
MATLAB逻辑运算与控制结构1_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

第八章逻辑运算与控制结构本章学习目标:

1)掌握matlab的关系和逻辑运算符2)了解find运算3)合理使用if/else4)掌握switch/case结构5)正确使用for循环和while循环8.1关系和逻辑运算符(1)关系运算符除了传统的数值运算,MATLAB还支持关系和逻辑运算。作为所有的关系和逻辑表达式的输入,MATLAB把任何非零数值当作真,而只把零当作假。所有关系和逻辑表达式的输出,当结果为真时,输出为1;当结果为假时,输出为0。关系运算符该运算符功能关系运算符该运算符功能<小于>=大于等于>大于==等于<=小于等于~=约等于

注意:1)符号“==”和“=”的区别:前者是用来比较两个变量,相等的时候返回1,不等的时候返回0;后者是用来将运算的结果赋给一个变量。2)sin(pi)~=0该值结构为真,即为1;比较abs(sin(pi)-0)<1.0e-14;●3<4●3<=4●3>4●3==4●'A'<'B'(2)逻辑运算符

逻辑运算符的功能在于使用其将多个表达式组合在一起,或是对关系式取反。

异或即排它(真假不同才是真)运算优先级:算数运算,关系运算,非,与,或逻辑运算符功能&与~非׀或Xor异或8.3Find结构函数find是找出向量或矩阵中非0元素的位置标志●I=find(x):返回向量或矩阵x中的所有非0元素的位置标识组成的向量,如果没有非0元素,则返回空值。●【I,J】=find(x);返回矩阵x的非0元素行和列的标识。其中I是行标识,J是列标识。●【I,J,V】=find(x):返回矩阵x中的非0元素行和列的标识。v是非0元素数值。8.4选择语句在编写程序时,往往需要根据一定的条件,进行一定的选择来执行不同的语句,此时,需要使用分支语句来控制程序的进程,在MATLAB中,使用if-else-end来实现这种控制。其中有三种使用形式:只有一种选择时的情况此时的程序结构如下:

if表达式执行语句

end这是结构最简单的一个应用形式,它只有一个判断语句,当表达式为真时,就执行if和end之间的执行语句,否则不予以执行。例:ifG<50disp('Gisasmallvalueequalto:')disp(G);end有两种选择时的情况假如有两个选择:

if表达式执行语句1else

执行语句2end此时如果表达式为真,则系统将运行执行语句1;如果表达式是假,则系统将运行执行语句2。有三种或三种以上选择的情况当有三种或更多的选择时,选用如下的结构:

if表达式1

表达式1为真时的执行语句1elseif表达式2

表达式2为真时的执行语句2elseif表达式3

表达式3为真时的执行语句3else

所有的表达式为假时的执行语句4

end在这种形式中,当运行到程序的另一个表达真时,则执行与之相关的执行语句,此时系统将不在检验其他的关系表达式,即系统将跳过其余的if-else-end结构,而且,最后的else命令可有可无。

if(b^2-4*a*c)<0disp('thisequationhastwocomplexroots.');if(b^2-4*a*c)==0disp('thisequationhastwoidenticalrealroots.');elsedisp('thisequationhastwodistinctrealroots.');end分支语句

在MATLAB语言中,除了上边介绍的if-else-end分支语句外,还提供了另外一种分支语句形式,那就是switch-case-otherwise-end分支语句,这就是新增加的一个功能,这可以使熟悉C语言或者其他高级语言的用户更方便地使用MATLAB分支功能。它的使用格式如下:switch开关语句

case条件语句执行语句,…,执行语句

case{条件语句1,条件语句2,条件语句3,…}执行语句,…,执行语句

….otherwise

执行语句,…,执行语句end

在这个结构中,当某个条件语句的内容与开关语句的内容相匹配时,系统将执行其后的语句,如果都不相符时,系统将执行otherwise的语句。注意:Switch指令后面的表达式是一个标量或者是个字符串;Case指令后面的不仅仅是标量或者字符串还可以为一个单元数组。

try-catch是选择结构中一种特殊结构,用于捕捉错误。当程序运行时遇到错误,程序会终止执行,但如果将可能出错的结构放在try语句中,那么程序会执行catch语句而不会中断程序执行。使用的格式如下:

try

执行语句1catch

执行语句2end

一般来说,执行语句1中的所有命令都要执行,如果执行语句1中没有MATLAB7.0错误出现,那么,在执行语句1后,出现控制就直接跳动end语句;但是如果在运行执行语句1的过程中,出现了MATLAB错误,那么程序控制就立刻转移到catch语句,然后执行语句2。在catch模块,函数lasterr包含了在try模块中出现的错误生成的字符串。这样,catch模块中的执行语句2就可以获取这个错误字符串,然后采取相应的动作。

try-catch模块也可以嵌套使用。8.4循环语句for循环1)for循环的最大特点是:它的循环判断条件通常就是对循环次数的判断,也就是说,循环语句的循环次数是预先设定好的。它的使用格式如下:

fori=表达式执行语句,…,执行语句

end

其中,它的表达式是一个向量,其形式可以是m:s:n;其中m、n和s可以为整数、小数或是负数。但是当n>m时,s必须有大于0的数,而当n<m时,s必须为小于0的数,因此只有这样,表达式才能组成一个向量。表达式也可以是m:n这样的形式,此时,s的值默认为1,n必须大于m。见例子:对n=1,2,3····10;求x(n)=sin(n*pi/10)程序:for=1:10x(n)=sin(n*pi/10);endx2)for循环的另一个特点就是嵌套使用,它可以多次嵌套for循环或是和其他的结构形式嵌套,这样可以利用它来实现更为复杂的功能。while循环语句与for循环不同,while循环的判断控制可以是逻辑判断语句的,因此它的循环次数可以是一个不定数。这样就赋予了它比for循环更广泛的用途。它的使用格式如下:

while表达式执行语句

end

在这个循环中,只要表达式的值不为false,程序就会一直运行下去,必须注意的是,当程序设计出现了问比如表达式的值总是false时,程序容易陷入死循环因此在使用while时,一定要在执行语句中设置使表达式的值为false的情况。终止命令break和return

首先介绍break命令。Break命令主要用在循环控制中,如for循环和while循环,一般通过if语句来使用break语句。当if语句满足一定的条件时,break语句将被调用,系统将在循环尚为结束时,跳出当前循环。在多层嵌套循环中,break只能跳出包含它的最内层的循环。注意:break语句只应用于循环语句中,当在循环语句以外进行终止操作时,可以使用return命令后,进程将返回调用函数或是键盘,同时,使用return命令可以终止keyboard模式。通常情况下,程序在end处结束,而return命令可以提前结束程序。见例子:继续命令continuecontinue

温馨提示

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

评论

0/150

提交评论