《MATLAB基础教程(第六版)(微课版)》ch06 MATLAB 编程_第1页
《MATLAB基础教程(第六版)(微课版)》ch06 MATLAB 编程_第2页
《MATLAB基础教程(第六版)(微课版)》ch06 MATLAB 编程_第3页
《MATLAB基础教程(第六版)(微课版)》ch06 MATLAB 编程_第4页
《MATLAB基础教程(第六版)(微课版)》ch06 MATLAB 编程_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2024年11月22日第1页第6章MATLAB编程MATLAB基础教程(第六版)(微课版)教学目标教学内容2024年11月22日第2页教学目标掌握MATLAB的脚本文件及其编辑和调试方法掌握MATLAB的程序设计和开发流程掌握MATLAB关系运算、逻辑运算及函数操作掌握MATLAB中的流程控制语句了解MATLAB的程序调试方法2024年11月22日第3页教学内容脚本文件和编辑器程序设计和开发关系运算符和逻辑变量逻辑运算符和函数条件语句循环switch结构调试MATLAB程序2024年11月22日第4页脚本文件和编辑器(1/11)在MATLAB中,用户可以使用两种方法执行运算:

(1)在交互模式下,直接在命令窗口中输入所有的命令。

(2)通过运行脚本文件中所存储的MATLAB程序。2024年11月22日第5页脚本文件和编辑器(2/11)创建和使用脚本文件2024年11月22日第6页脚本文件和编辑器(3/11)有效使用脚本文件

(1)脚本文件名必须满足MATLAB为变量命名的约定。(2)为脚本文件赋予的名称不要与其所计算的变量名称相同。(3)为脚本文件赋予的名称要与MATLAB命令或者函数的名称都不相同。(4)在交互模式中,脚本文件所创建的所有变量都是全局变量。(5)函数文件所创建的变量是该函数的局部变量。用户如果不必访问脚本文件中的所有变量,就需要考虑使用函数文件。这将避免用变量名“弄乱”工作空间,并将同时减少内存需求。(6)在不使用文本编辑器打开M-文件的情况下,用户可以使用type命令来查看文件的内容。2024年11月22日第7页脚本文件和编辑器(4/11)有效使用命令行窗口和编辑器用户可以使用鼠标重新调整窗口的大小并移动窗口,从而可以同时查看它们。如果没有进入编辑器,那么使用Alt-Tab组合键则可快速地在编辑器/调试器窗口和命令窗口之间来回切换。在命令窗口中,使用向上箭头键检索先前所输入的脚本文件名,并且按Enter键执行脚本文件。在修改了脚本文件之后,要确保在切换到命令窗口之前保存文件。用户可以使用编辑器作为基本的文字处理器来编写包含有用户脚本文件、结果和讨论的简短报告,或者用以提供用户对某一问题的解答。2024年11月22日第8页脚本文件和编辑器(5/11)调试脚本文件程序调试就是找出和删除程序中“故障”或者错误的过程。

(1)语法错误(2)运行时错误MATLAB错误消息通常使用户能够找到语法错误。检查出运行时错误,可以尝试以下方法:

(1)总是使用简单问题(其可以通过手算来检验答案)来测试程序。

(2)删除语句末尾的分号,用以显示任何一个中间计算结果。

(3)使用编辑器的调试特性。2024年11月22日第9页脚本文件和编辑器(6/11)编程风格注释部分(1)

在第一行中放置程序名和任何关键词。(2)在第二行中放置创建的日期,以及创建者的姓名。(3)

每个输入和输出变量的变量名定义。(4)

程序中调用的每个用户自定义函数名称。输入部分:放置输入数据和/或输入函数,其允许输入数据。计算部分

:放置计算。

输出部分:放置那些以所需格式传递的输出函数。2024年11月22日第10页脚本文件和编辑器(7/11)记录度量单位本书建议用户为所有的输入变量和输出变量记录度量单位,因为很多工程系统所出现的惊人失败都源于用户误解了用于设计系统的程序输入和输出变量的单位。2024年11月22日第11页脚本文件和编辑器(8/11)使用脚本文件存储数据可能会有一些应用程序要求用户频繁地访问同一组数据。如果是这样的话,用户可以将数组中的数据存储在一个脚本文件之中。2024年11月22日第12页脚本文件和编辑器(9/11)控制输入和输出MATLAB为从用户获取输入以及为格式化输出(执行MATLAB命令而获得的结果)提供了许多有用的命令。

令说

明disp(A)显示数组A的内容,而不是数组的名称disp(‘text’)显示单引号内部的文本串Format控制屏幕输出的显示格式Fprintf执行格式化的写入到屏幕或者写入到一个文件x=input('text')显示单引号中的文本,等待用户的键盘输入,并且将输入值存储在x中x=input('text','s')显示单引号中的文本,等待用户的键盘输入,并且将输入作为字符串存储在x中k=menu('title','option1','option2',...显示菜单,该菜单的名称在字符串变量'title'中,并且菜单的选项是'option1'、'option2'等等2024年11月22日第13页脚本文件和编辑器(10/11)用户输入input函数用以在屏幕上显示文本,等待用户从键盘输入某些内容,然后再将输入内容存储在指定变量之中。2024年11月22日第14页脚本文件和编辑器(11/11)脚本文件示例%程序Falling_Speed.m:绘制一个下落物体的速度图形。%W.PalmIII于2004年3月1日创建。%%输入变量:%tf=最终时间(单位为秒)%%输出变量:%t=计算速度的时间数组(单位为秒)%v=速度数组(米/秒)%参数值:g=9.81;%以SI为单位的重力加速度%%输入部分:tf=input('Enterthefinaltimeinseconds:');%%计算部分:dt=tf/500;t=[0:dt:tf];%创建一个有501个时间值的数组。v=g*t;%%输出部分:plot(t,v),xlabel('Time(seconds)'),ylabel('Speed(meters/second)')2024年11月22日第15页程序设计和开发(1/5)算法和控制结构(1)顺序运算。(2)条件运算。(3)迭代运算(循环)。

结构化程序设计(1)编写结构化程序较容易。(2)为一个应用编写的模块(函数)也可以用于其他的应用。(3)调试结构化程序较容易。(4)结构化程序设计在团队环境中非常有效。(5)理解和修改结构化程序较容易。2024年11月22日第16页程序设计和开发(2/5)自顶向下的设计和程序文档(1)简明地陈述问题(2)指定程序所使用的数据。这就是“输入”(3)指定程序所产生的信息。这就是“输出”(4)通过手算或者计算器完成解决方案的步骤。如果需要的话,可以使用一个较简单的数据集(5)编写和运行程序(6)用手算结果检验程序的输出(7)用输入数据运行程序,并且对输出进行一个真实性检验(8)如果用户在将来使用该程序作为一个通用工具,那么,用户必须通过用一组合理的数据值来运行它以进行测试;并对结果进行一个真实性检验2024年11月22日第17页程序设计和开发(3/5)自顶向下的设计和程序文档结构图和流程图通过使用以下方法实现有效的文档记录。(1)合适地选择变量名,用以反映它们所代表的量。(2)在程序中使用注释。(3)使用结构图。(4)使用流程图。(5)通常在伪代码中逐字地描述程序。2024年11月22日第18页程序设计和开发(4/5)伪代码

伪代码是对实际计算机代码的模仿。伪代码可以为程序内部的注释提供根据。除了提供文档记录之外,伪代码在编写详细代码之前对于一个程序轮廓所进行的描述也很有用。查找故障参看6.1.4节2024年11月22日第19页程序设计和开发(5/5)开发大型程序(1)编写和测试各个模块(单元测试阶段)。(2)编写使用模块的顶级程序(构建阶段)。(3)测试第一个完整的程序(alpha测试版阶段)。(4)由内部人员与熟悉和信任的外部用户(这通常必须签保密协议)测试最后的alpha测试版。2024年11月22日第20页关系运算符和逻辑变量(1/4)6个关系运算符:

<小于,<=小于或者等于,>大于,

>=大于或者等于,==等于,~=不等于使用关系运算符进行比较的结果是0(如果比较是假)或者1(如果比较是真),并且MATLAB可以使用这个结果作为一个变量。用于比较数组时,关系运算符逐元素地比较数组。比较的数组必须具有相同的维数。唯一的例外是当用户比较一个数组和一个标量的时候,这时MATLAB将数组中的所有元素分别与标量进行比较。关系运算符也可以用于数组寻址。算术运算符+、-、*、/和\的优先级高于关系运算符。关系运算符之间的优先级相等,并且MATLAB按照从左到右的顺序计算它们的值。2024年11月22日第21页关系运算符和逻辑变量(2/4)logical类当使用关系运算符(如x=(5>2))时,创建了一个逻辑变量(在此处就是x)。在MATLAB之前的版本中,logical是任何一个数值数据类型的属性。现在,logical是一个第一类数据类型和一个MATLAB类,所以logical现在等效于其他的第一类类型,如字符和单元数组。逻辑变量只可能有值1(真)和0(假)。2024年11月22日第22页关系运算符和逻辑变量(3/4)logical函数用户可以使用关系和逻辑运算符以及logical函数创建逻辑数组。logical函数返回一个可以用于逻辑索引和逻辑测试的数组。2024年11月22日第23页关系运算符和逻辑变量(4/4)使用逻辑数组访问数组当使用逻辑数组寻址另一个数组时,MATLAB会从那个数组中提取逻辑数组有1那个位置中的元素。2024年11月22日第24页逻辑运算符和函数(1/2)MATLAB中有5个逻辑运算符,有时也称为布尔(Boolean)运算符,这些运算符执行逐元素运算。除了NOT运算符(~)之外,它们的优先级比算术和关系运算符的都低。NOT运算&和|运算符与(AND)运算或(OR)运算异或函数2024年11月22日第25页逻辑运算符和函数(2/2)短路逻辑运算符

A&&BA||B逻辑运算符和find函数函数find(x)计算一个数组,它包含数组x中那些非零元素的索引。它可与逻辑运算符结合使用。2024年11月22日第26页条件语句(1/3)if语句

if语句的基本形式:

if逻辑表达式语句

end“嵌套”if语句

if逻辑表达式1

语句组1if逻辑表达式2

语句组2endend每条if语句必须伴随有一条end语句。end语句标志着逻辑表达式为true时所要执行语句的结束。if和逻辑表达式(其可以是一个标量、一个矢量或者一个矩阵)之间需要一个空格。2024年11月22日第27页条件语句(2/3)else语句与elseif语句else语句的基本结构为:

if逻辑表达式语句组1else

语句组2end使用elseif语句的一般形式是:if逻辑表达式1语句组1elseif逻辑表达式2语句组2else语句组3end2024年11月22日第28页条件语句(3/3)字符串和条件语句字符串是一个包含有字符的变量。字符串对于创建输入提示符、消息、存储以及对诸如姓名和地址等数据进行的操作都很有用。要在MATLAB创建一个字符串变量,可以将字符放在单引号中。字符串最重要的应用之一是:创建输入提示和输出消息。

2024年11月22日第29页循环(1/4)for循环for循环的典型结构如下所示:

for循环变量=m:s:n

语句

end注意

for语句需要伴随有一个end语句。end语句标志着所要执行语句的结束。在for和loop变量(其可能是一个标量、一个矢量或者一个矩阵,但是到目前为止,标量是最常见的情况)之间需要一个空格。2024年11月22日第30页循环(2/4)break和continue语句break语句停止循环的执行。continue语句将把控制传递给那些它出现在其中的for或者while循环的下一次迭代之中,并同时跳过循环主体中的其他任何语句。在嵌套循环中,continue将控制传递给关闭了continue语句的for或者while循环的下一次迭代。2024年11月22日第31页循环(3/4)使用数组作为循环索引

MATLAB中允许使用一个矩阵表达式为循环指定所执行的遍数。在这种情况下,循环变量是一个矢量,并且在每一遍循环执行期间,MATLAB都将循环变量设置成等效于矩阵表达式的连续列。

隐含循环使用逻辑数组作为掩码通常可以通过使用逻辑数组作为掩码(即,选择另一个数组的元素)来避免使用循环和分支,用户因此可以创建更简单和更快捷的程序。2024年11月22日第32页循环(4/4)while循环while循环的典型结构如下所示:

while逻辑表达式语句

end要使while循环正常运行,必须发生以下这两个前提条件:

(1)在执行while语句之前,循环变量必须有一个值。(2)语句必须以某种方式改变循环变量的值。while循环的主要应用是:当用户希望只要某个语句为true时,循环就继续进行。2024年11月22日第33页switch结构(1/1)switch结构的语法是:

switch输入表达式(标量或者字符串)

温馨提示

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

评论

0/150

提交评论