MAT程序基础设计应用 6_第1页
MAT程序基础设计应用 6_第2页
MAT程序基础设计应用 6_第3页
MAT程序基础设计应用 6_第4页
MAT程序基础设计应用 6_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

MATLABProgrammingandEngineeringApplicationMATLAB程序设计与工程应用本书知识结构第3章MATLAB基本结构程序设计3.1面向过程程序设计简介了解面向过程程序设计的基本概念。3.2逻辑数据类型及其运算掌握MALTAB程序中的逻辑数据类型,熟悉各种逻辑运算符和关系运算符以及逻辑表达式和关系表达式的构成和运算方法。3.3分支结构程序设计了解分支程序的基本结构,掌握if语句和switch语句的基本格式及实现程序分支的基本方法。3.4循环结构程序设计了解循环程序的基本结构,掌握for和while语句的基本格式及实现程序循环的基本方法,了解break和continue语句在循环程序的功能及其用法。面向过程程序设计就是面向解决问题的过程和步骤进行编程。传统的面向过程的编程思想可以总结为“自顶向下,逐步细化”,程序设计的具体实现步骤可以简单概括如下。将要实现的功能描述为一个从开始到结束按部就班的连续步骤(过程)。依次逐步完成这些步骤,并分别编写相应的程序段。如果某一步的难度较大,又可以进一步细化为若干个子步骤,以此类推,直到得到想要的结果。上述步骤采用自顶向下的设计方法,将一个复杂的任务或者功能分解为很多更易理解和实现的子过程。每个子过程独立进行程序编制和测试,直到确保每个子任务都能正常工作,再将这些子过程按照一定的程序结构组合起来实现完整的功能,所以又称为结构化程序设计。3.1面向过程程序设计简介在结构化程序设计中,有三种基本的程序结构,即顺序结构、分支结构和循环结构。其中顺序结构就是依次执行各子过程和步骤,当所有子过程执行完毕,就实现了整个程序的功能。在分支和循环结构的程序中,各子过程和步骤之间存在着执行流程的切换和跳转,而一般来说,流程的切换和跳转都需要有相应的条件进行控制。本章将主要介绍MALTAB中分支和循环结构的程序设计方法。3.1面向过程程序设计简介3.2.1逻辑数据类型3.2逻辑数据类型及其运算在MATLAB中,逻辑数据可以用内置函数true和false产生,也可以由关系运算符构成的关系表达式和逻辑运算符构成的逻辑表达式产生。在计算机中,逻辑型数据的取值true和false分别用数值1和0表示和存储,并可以和普通的数值型数据进行各种算术运算。3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算在程序中,关系通常指的是两个数据之间的相对大小,关系运算就是比较判断两个变量或者数据的大小关系。逻辑运算是对一个或者多个逻辑型数据、逻辑型变量和关系表达式的结果进行运算。3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算关系运算符与关系表达式关系运算符用于构成关系表达式。利用关系表达式对两个数值型常数和变量进行比较判断,结果为逻辑型数值1或0,分别表示关系表达式成立(true)或者不成立(false)。关系表达式添加括号,明确指定优先级,以增强可读性3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算几点说明——关系表达式的结果用0和1表示,可以将其视为普通的数值型数据,并与其他普通型数据常数或变量进行算术运算。关系运算符的优先级

在同时含有算术运算和关系运算的表达式中,所有关系运算符的优先级相同,并且都低于所有算术运算符的优先级。因此,在关系表达式中需要注意添加小括号,以明确指定关系运算符的优先级顺序。3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算数组的比较

关系表达式中的变量也可以是数组。用关系运算符对两个数组进行比较,实际上是对两个数组中对应位置上的元素进行比较,此时要求两个数组的大小必须相同,结果是大小相同的逻辑型数组。3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算逻辑运算符与逻辑表达式逻辑运算符用于构成逻辑表达式,实现对逻辑型数据的与、或、非逻辑运算。辑运算符通常和关系运算符一起配合使用,用于构造比较复杂的关系比较和判断。3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算几点说明——逻辑与和逻辑或运算都有两种运算符,其中“&&”和“||”是具有短路功能的逻辑与和逻辑或运算。所谓短路功能,指的是在计算所有关系表达式之前就可完全确定逻辑表达式的结果。例如,在逻辑表达式A&&B中,如果关系表达式A=false(0),则根据运算规则,不管关系表达式B取值为0还是1,整个逻辑表达式的结果一定为false(0),因此不需要另外计算关系表达式B的值。3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算“&&”和“||”只能对两个逻辑型标量数据或者能够得到逻辑型标量数据的逻辑或关系表达式进行运算,而不能是逻辑型数组。逻辑非是一元运算符,只需要一个逻辑型变量或数据参与运算,而另外的三种运算符都需要两个变量。在算术运算、关系运算和逻辑运算中,逻辑与和逻辑或运算符的优先级最低,而逻辑非的优先级要高于所有的算术和关系运算符。在逻辑与和逻辑或运算中,优先级从高到低依次为&、|、&&和||。3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算除了上述专用的运算符以外,MATLAB中还提供了专用的函数实现相应的逻辑运算,即and、or和not函数。此外,还可以调用xor函数实现逻辑异或运算,参加运算的逻辑型变量或数据分别作为这些函数的两个或一个参数写在小括号中。3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算字符串比较专用函数

函数strcmp(s1,s2)和strcmpi(s1,s2)用于比较两个给定字符串s1和s2是否相同,函数strncmp(s1,s2,n)和strncmpi(s1,s2,n)用于比较两个字符串的前n个字符是否相同。其中,函数strcmpi(s1,s2)和strncmpi(s1,s2,n)在比较时都不区分英文字母的大小写。3.2.2关系运算和逻辑运算3.2逻辑数据类型及其运算字符类型和属性的获取

在MATLAB中,提供了如下内置函数用于判断给定参数是否为字符向量和字符串,检测字符串中指定字符的属性(例如是否有英文字母等),返回逻辑值

1

(true)或者逻辑值

0

(false)。

函数ischar(x):确定参数x是否为字符向量;函数isstring(x):确定参数x是否为字符串;函数isletter():检测字符或者字符串中哪些字符为英文字母,返回结果为一个行向量,向量中每个数据取值为1或0。当取值为1时,表示字符串中对应位置上的字符为英文字母。3.3.1if语句3.3分支结构程序设计基本的if语句if表达式1语句块1endif表达式1语句块1else语句块2end单分支结构双分支结构3.3.1if语句3.3分支结构程序设计if表达式1语句块1elseif表达式2语句块2else语句块3end三分支结构3.3.1if语句3.3分支结构程序设计if表达式1语句块1elseif表达式2语句块2else语句块3end三分支结构if语句最后一定以end命令结束。在上述语句中,还可以含有多个elseif,从而得到更多的分支。elseif是

else和

if两个单词拼接而成的,两个单词之间没有空格。3.3.1if语句3.3分支结构程序设计实例3-1基本的分支程序判断变量a中数的奇偶。如果该数为偶数,则将其除以2后赋给变量b;否则将变量b置为0。3.3.1if语句3.3分支结构程序设计实例3-2多分支结构程序设计从键盘上输入一个0~100之间的整数。如果该数小于30,则屏幕提示“小”;大于80,则提示“大”;否则提示“中”。3.3.1if语句3.3分支结构程序设计if语句的嵌套所谓嵌套if语句,就是在基本if语句内部,还含有另外一层或者多层if语句。实例3-3if语句的嵌套1程序功能与实例3-2相同,要求用嵌套if语句实现。3.3.1if语句3.3分支结构程序设计实例3-4if语句的嵌套2有两个长度可能不相等的行向量a和b,编程实现如下功能:在其中长度较小的向量后面补充若干个0,使两个向量的长度相同,并显示各种情况下的相关信息。运行结果3.3.2switch语句3.3分支结构程序设计switch开关表达式case表达式1语句块1case表达式2语句块2...otherwise语句块Nendswitch语句逐一检测各case子句中的表达式,直到其中的一个表达式成立,则执行该case子句下面的语句块。如果case子句中的表达式为数值型数据,则当其等于开关表达式的值时,该case子句中的表达式成立。对于字符串,当case子句中的字符串表达式等于开关表达式中的字符串时,该表达式成立。3.3.2switch语句3.3分支结构程序设计实例3-5switch语句的使用根据键盘上输入的字符A、B、C或D,分别显示不同的信息。运行一次运行第二次3.4循环结构程序设计在一个程序中,当某个条件成立时,重复执行某些操作,这就是循环。许多实际问题都可以用循环结构的程序来实现某些重复操作,例如求很多数据的累加和连乘、重复执行指定的操作等。在循环程序的具体实现中,有两种基本的循环,即计数循环和条件循环。3.4.1基本的循环语句3.4循环结构程序设计for索引=值

语句块endfor语句索引即为循环计数变量,而值一般情况下是一个数组(可以是向量、数值序列或者多维数组)如果索引值是向量或者数值序列,则每次循环将向量中的一个元素赋给索引变量,循环次数等于向量的长度。索引值如果为二维数组,则每次循环可以将数组中的一列数据作为索引,此时索引变量是一个列向量,循环次数等于数组的列数。3.4.1基本的循环语句3.4循环结构程序设计实例3-6for语句的使用1求1~100之间所有奇数的累加和。运行结果3.4.1基本的循环语句3.4循环结构程序设计实例3-7for语句的使用2求数组中所有数据的累加和。运行结果3.4.1基本的循环语句3.4循环结构程序设计while表达式语句块endwhile语句表达式可以是关系表达式或者逻辑表达式,代表继续循环的条件。当表达式为true时,重复执行语句块,直到表达式的值变为false。3.4.1基本的循环语句3.4循环结构程序设计实例3-8while语句的应用1任意输入一个正整数n,用while循环求其阶乘n!,编制相应的MATLAB程序。正整数n的阶乘n!=1×2×3×…×n=n×(n-1)×(n-2)×…×2×1。因此根据输入的正整数n进行运算,每次循环将n的值减1,并与前面的乘积相乘,直到n的值减到1为止。3.4.1基本的循环语句3.4循环结构程序设计实例3-9while语句的应用2整数向量a中按照从大到小的顺序存放有若干数据,将各数据依次进行累加,当累加结果刚超过100时停止累加,求累加和及这些数据的平均值。3.4.2循环语句的嵌套3.4循环结构程序设计实例3-10循环语句的嵌套求数组中各行数据的最大值。3.4.3break和continue语句3.4循环结构程序设计这两种语句主要用在for和while循环体中,一般与if语句配合使用。其中,break语句用于当满足指定条件时终止执行循环,并跳过循环体中break语句之后的语句,继续执行程序中该循环end语句之后的语句。如果是嵌套循环,break语句执行后将退出所在的循环,返回到外层循环中继续执行。continue语句用于跳过当次循环时循环体中后面的其他语句,跳转到所在循环体的开始,继续执行所在循环体的下次循环。由此可见,break语句和continue语句的功能几乎是完全相反的。3.4循环结构程序设计实例3-11continue语句的用法求出1~50之间7的所有倍数值。3.4.3break和continue语句3.4循环结构程序设计实例3-12break语句的用法利用break语句实现实例3-10中同样的功能。3.4.3break和continue语句3.4循环结构程序设计3.4.4循环语句的向量化由于MATLAB中基本的数据类型是数组,并且提供了大量对数组进行操作和运算的运算符和函数,很多时候可以不用循环而

温馨提示

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

评论

0/150

提交评论