2023年matlab精品讲义1.pdf
《2023年matlab精品讲义1.pdf》由会员分享,可在线阅读,更多相关《2023年matlab精品讲义1.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学习好资料 欢迎下载 江苏工业学院教案 第 4 次课 3 学时 授课时间 2006-3-15 教案完成时间 2006-2-1 课题(章节)第二章 基本语法(3)教学目的与要求:掌握 MATLAB 编程中的逻辑判断及流程控制语句使用方法;掌握 MATLAB 基本绘图方法。教学重点、难点:MATLAB 与其它语言的逻辑判断、流程控制的区别;MATLAB 强大的绘图功能使用方法。以上 2 点是本次授课的重点,相应也是难点,特别绘图功能的使用。教学方法及师生互动设计:利用多媒体教室的优点,采用边理论教学,边上机实验的方法。当堂提问,并与学生适时交流。课堂练习、作业:作业:1 复习课堂内容;2 用逻辑判
2、断语句和流程控制语句编写程序,作为上机实验内容。3 将题 2 结果用绘图语句画出图形。本次课教学内容小结:完成本教案内容。第 4 页 学习好资料 欢迎下载 江苏工业学院教案 教 学 内 容(讲稿)备注(包括:教学手段、时间分配、临时更改等)2.4 逻辑判断及流程控制 2.4.1 关系运算 所谓关系运算是揸两个元素之间数值的比较,一共有表 2-8所示的 6 种可能。表 2-8 关系运算 =小于 小于等于 大于 大于等于 等于 不等于 关系运算的结果只有两种可能,即 0 或 1。0 表示该关系式为“假”,即它不成立;1 表示该关系式为“真”,即该关系式是正确的。例如,键入关系式:a=2+2=4 得
3、 a=1 注意,前面的单个等号表示赋值,后面的双等号则表示关系运算。式中 2+2=4是关系运算,它的优先级高,要先算,算出的结果给 a 赋值,为了改善可读性,最好加上括号,写成 a=(2+2=4),表明是把括号内的关系式的结果给 a 赋值。MATLAB 中的关系运算都适用于矩阵,它是对矩阵的各个元素进行元素群运算,因此两个相比较的矩阵必须有相同的阶数,输出的结果也是同阶矩阵。例如 键入 A=magic(6)得 A=35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 1
4、3 18 11 要找到此矩阵中所有被 3 整除的元素,并在其位置上标以 1。可以用表 2-7中的rem 函数,rem(A,3)表示把 A 除以 3 的余数,余数为零就是整除。键入 p=(rem(A,3)=0)得 p=0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 第 4-1页 的区别强大的绘图功能使用方法以上点是本次授课的重点相应也是难点内容用逻辑判断语句和流程控制语句编写程序作为上机实验内容将题结辑判断及流程控制关系运算所谓关系运算是揸两个元素之间数值的比较学习好资料 欢迎下载 江苏工业学院教案
5、教 学 内 容(讲稿)备注(包括:教学手段、时间分配、临时更改等)j,k=find(p)给出 p 矩阵中不为零的元素的两个下标,左端没有或只有一个变量,即 find(p)或 lp=find(p)给出 p 矩阵中不为零的元素的序号。矩阵元素是按列排序号的,先第 1 列,再接第 2 列依次排完后,再确定它们的顺序号。一个 66 阶的矩阵的 36 个元素的序号排列如表 2-10所示。因此,一个 nm 阵中下标为(j,k)的元素,其序号为 I=(k-1)*n+j。键入 lp=find(p)得 lp=2 5 9 12 13 16 20 23 27 30 31 34 表 2-10 矩阵元素的序号排法 1
6、7 13 19 25 31 2 8 14 20 26 32 3 9 15 21 27 33 4 10 16 22 28 34 5 11 17 23 29 35 6 12 18 24 30 36 可以看出这些序号确实对应于 p 中的 1 元素。矩阵的序号(index)与下标(subscript)是一一对应的,其变换关系可由表 2-1 中的 ind2sub(读作 index to subscript)和 sub2ind 函数求得。2.4.2 逻辑运算 逻辑量只能取 0(假)和 1(真)两个值。逻辑量的基本运算为与(&)、或(|)和非()三种。有时也包括异式(xor),不过异或可以用三种基本运算组合
7、而成。两个逻辑量经此逻辑运算后的输出仍然是逻辑量,表示逻辑量的输入输出关系的表称为真值表,见表 2-11。表 2-11 基本逻辑运算的真值表 运 算 A=0 A=1 B=0 B=1 B=0 B=1 A&B 0 0 0 1 A|B 0 1 1 1 A 1 1 0 0 xor(A,B)0 1 1 0 第 4-2 页 的区别强大的绘图功能使用方法以上点是本次授课的重点相应也是难点内容用逻辑判断语句和流程控制语句编写程序作为上机实验内容将题结辑判断及流程控制关系运算所谓关系运算是揸两个元素之间数值的比较学习好资料 欢迎下载 江苏工业学院教案 教 学 内 容(讲稿)备注(包括:教学手段、时间分配、临时更
8、改等)所有的算法语言中都有逻辑运算。MATLAB的特点是将逻辑运算用于元素群,得出同阶的 0-1矩阵。为了按列、按行判断一群元素的逻辑值,它又增加了两种对元素群的逻辑运算函数,即 all(全为真)和 any(不全为假)。现在看来逻辑式 u=p|p,这是把 p 和“非”p 求“或”。p 就是把 p 中的 0 元素换成 1,1 元素换成 0。在每个元素位置上,必有一个是 1,把 p 和p“或”起来,一定是全 1 矩阵。得 u=1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 all 和 any 后的输入变
9、量应为矩阵,它是按列运算的。从它们的定义可知 all(p)=0 0 0 0 0 0 (列中有一个元素为 0 即得 0)all(u)=0 1 1 1 1 1 (列中元素为全 1 才得 1)any(p)=1 1 1 1 1 1 (列中有一个元素为 1 即得 1)2.4.3 流程控制语句 计算机程序通常都是从前到后逐条执行的。但有时也会根据实际情况,中途改变执行的次序,称为流程控制。MATLAB 4.x 设有 3 种流程控制的语言结构。即 If 语句、While 语句和 For 语句。在 MATLAB5.x 中是 4 种,增加了 Switch-case 语句。1、If 语句 根据复杂程度,If 语句
10、有 3 种形式:if(表达式)语句组 A,end 其流程见图 2-1(a)。执行此语句时,计算机先检验 if 后的逻辑表达式,如为 1,它就执行语句组 A;如为 0,就跳过语句组 A,直接执行 end 后的后续语句。注意,这个 end 是决不可少的,没有它,在表达式为 0 时,就找不到继续执行的程序入口。if(表达式 1)语句组 A,else 语句组 B,end 第 4-3 页 的区别强大的绘图功能使用方法以上点是本次授课的重点相应也是难点内容用逻辑判断语句和流程控制语句编写程序作为上机实验内容将题结辑判断及流程控制关系运算所谓关系运算是揸两个元素之间数值的比较学习好资料 欢迎下载 江苏工业学
11、院教案 教 学 内 容(讲稿)备注(包括:教学手段、时间分配、临时更改等)(a)(b)(c)图 2-1 if语句的 3 种程序结构形式 其流程见图 2-1(b)。执行到此语句时,计算机先检验 if 后的(逻辑)表达式,如为 1,它就执行语句组 A;如为 0,就执行语句组 B。else 用来标志语句组 B 的执行条件,同时也标志语句组 A 的结束(免去了 end)。同样,最后的 end 是不可少的;没有它,执行完语句组 A 后,会找不到进入后续程序的入口。if(表达式 1)语句组 A,elseif(表达式 2)语句组 B,else 语句组 C,end 其流程见图 2-1(c)。前两种形式的 if
12、 语句都是两分支的程序结构,要实现两个以上分去的结构就得采用含 elseif 的结构。这里表示的是 3 分支的情况。在中间可加入多个 elseif 以形成多个分支。只是程序结构会显得冗长,MATLAB5.X 中的 Switch 语句可以用较简洁对称的形式实现多分支结构。例 2-1 输入数 n,判断其奇偶性。程序如下 n=input(n=),if rem(n,2)=0 A=even,else A=odd,end 运行此程序时,程序要求用户输入一个数,然后它判断该数是奇数还是偶数。所以它共有两个出口。实际上这个程序并不全面,如果用户根本未键入任何数就回车,程序会判断为 odd。请读者考虑其原因。为
13、了使程序在用户无输入时自动中止,可以把程序改为:if esempty(n)=1 A=empty,elseif rem(n,2)=0 A=even,else A=odd,end 第 4-4 页 语句组 A 表达式 假(0)真(1)if 语句组 A 语句组 B 表达式 真 假 else if 表达式2 语句组 A 语句组 C 语句组 B 表达式 1 假 else 假 elseif 真 真 if 的区别强大的绘图功能使用方法以上点是本次授课的重点相应也是难点内容用逻辑判断语句和流程控制语句编写程序作为上机实验内容将题结辑判断及流程控制关系运算所谓关系运算是揸两个元素之间数值的比较学习好资料 欢迎下载
14、 江苏工业学院教案 教 学 内 容(讲稿)备注(包括:教学手段、时间分配、临时更改等)2、While 语句 while 语句的结构形式为:while(表达式)语句组 A,end 其流程见图 2-2。执行到此语句时,计算机先检验 while 后的逻辑表达式,如为 1,它就执行语句组A;到 end 处到,它跳回到 while 的入口,再检验表达式;如还是 1,再执行语句组 A;周而复始,直到表达式不成立(结果为零)为止。此时就跳过语句组 A,直接执行 end 后的后续语句。与 if 语句的不同之处是它们在循环地执行某个语句组,故称为循环语句。例 2-2 求 MATLAB 中的最大实数【解答】设定一
15、个数 x,让它不断增大,直到MATLAB 无法表示它的值,只能表为 inf 为止。于是,可列出下列程序 x=1;while x=inf,x1=x;x=2*x;end,x1 其中,先设 x=1,进入 while 循环,只要 x 不等于 inf,就把 x 加倍,直到 x=inf。如果把此时的 x 显示出来,它是无穷大,不是题中要找的数。要找的是变为无穷大之前的最大数。因此,在对 x 加倍之前,把它存在 x1 中,显示的 x1 就是要求的最大数。运行这行程序得 x1=8.9885e+307 系统的最大浮点实数(2-)*21023(见表 2-1),其十进制形式为 realmax=1.7977 e+30
16、8 两者数量级接近,但还是相差近一倍,这是因为每次都把 x 翻一番,故求得的数可能比最大数小不到一半。如果把程序中的 x=2*x 改为 x=1.1*x,结果就会准确一些,得到 x1=1.783718732622142e+308 例 2-3 求 MATLAB 相对精度。【解答】解的思路是让 y 不断减小,直至 MATLAB 分不出 1+y 与 1 的差别为止。其程序为 y=1;while 1+y1,y1=y;y=y/2;end,y1 结果为 y1=2.220446049250313e-016 与 MATLAB 内部给出的浮点相对精度 2-52(见表 2-1)的十进制数相同。第 4-5 页 计算表
17、达式的值 语句组 A 表达式的值为真 循环结束 While 语句入口 是 否 图 2.2 while语句流程图 的区别强大的绘图功能使用方法以上点是本次授课的重点相应也是难点内容用逻辑判断语句和流程控制语句编写程序作为上机实验内容将题结辑判断及流程控制关系运算所谓关系运算是揸两个元素之间数值的比较学习好资料 欢迎下载 江苏工业学院教案 教 学 内 容(讲稿)备注(包括:教学手段、时间分配、临时更改等)3、For 语句 for 语句的结构形式为:for k=初值:增量:终值 语句组 A,end 即它把语句组 A 反复执行 N 次。在每次执行时程序中的 k 值不同。N=1+(终值-初值)/增量 例
18、 2-4 用 for 语句求三角函数表。程序如下:for x=0:0.1:pi/4 disp(x,sin(x),cos(x),tan(x),end 所得的结果将和前面的答案相同。这也可以看出,MATLAB的元素群运算功能与一个 for 循环相当。由于它不需每次检验表达式,运算速度比 for 语句快得多。但是不能认为它可全部取代 for 语句,由下例可以看出。例 2-5 列出构成 Hibert 矩阵的程序。完成这个程序需要两重循环。n=input(n=),format rat for i=1:n,for j=1:n,h(i,j)=1/(i+j-1);end,end,h 执行时,先按提示输入 n,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 matlab 精品 讲义
限制150内