




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 本章目标 掌握MATLAB的几种基本控制转移语句学会使用M文件进行编程具备对复杂问题的编程求解能力 2 主要内容 4 1程序设计概述4 2MATLAB程序结构4 3M文件 3 4 1程序设计概述 MATLAB是第四代编程语言 1 程序简洁 2 可读性很强 3 调试容易 4 编程效率高 5 易移植和维护通过编程可求解复杂性更高或特殊的问题 4 4 2MATLAB程序结构 按照程序设计的观点 任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合来实现 1 顺序结构 程序按程序语句或模块在执行流中的顺序逐个执行 2 选择结构 程序按设定的条件实现程序执行流的多路分支 3 循环结构 程序按给定的条件重复地执行指定的程序段或模块 5 4 2 1顺序结构 程序模块1 程序模块2 MATLAB中实现顺序结构的方法非常简单 只需将程序语句顺序排列即可 6 4 2 2选择结构 在MATLAB中 选择结构由两种语句结构实现 1 if语句 2 switch语句 条件 程序模块1 成立 不成立 程序模块2 7 1 if语句 if表达式程序模块1else程序模块2end 不可缺少 8 if语句的两种变形 1 单分支if语句 只有一个分支的选择结构if表达式程序模块end 2 多分支if语句 超过2个的选择if表达式1程序模块1elseif表达式2程序模块2 elseif表达式n程序模块nelse程序模块n 1end 9 例 将百分制的学生成绩转换为五级制的成绩输出 clear n input 输入n ifn 90r A elseifn 80r B elseifn 70r C elseifn 60r D elser E end 运行结果 输入n 87r B 10 2 switch语句 switch表达式case数值1程序模块1 case数值2程序模块2 otherwise程序模块n end 注意 和C语言不同的是 在switch结构中 如果一个case条件满足 那么在执行完这个case组中的语句体之后 就会直接去执行end语句后面的语句 而不再判断其它case语句的情况 11 例 将百分制的学生成绩转换为五级制的成绩输出 使用switch语句 clear n input 输入n switchfix n 10 case 10 9 r A case8r B case7r C case6r D otherwiser E end 运行结果 输入n 65r D 12 4 2 3循环结构 在MATLAB中 循环结构可以由两种语句结构实现 1 for语句循环结构 2 while语句循环结构 程序模块 不成立 成立 条件 3 2 2选择结构 13 1 for语句循环结构 for循环变量 初值 步长 终值循环体end 说明 初值 终值和步长可以是标量 也可以是表达式 步长可以为正 负 也可省略不写 在这种情况下 默认的步长值为1 14 例如 使用for结构计算1 2 3 100 clear sum 0 fori 1 100sum sum i end sum 运行结果 sum 5050 15 2 while语句循环结构 while表达式循环体end while语句一般用于事先不能确定循环次数的情况 16 例 使用while结构计算1 2 3 100 clear sum 0 i 0 whilei sum i 运行结果 sum 5050i 100 17 其他流程控制语句continue break return 1 continue 用于for循环和while循环中跳过某些执行语句 出现continue语句 则跳过循环体中所有剩余的语句 继续下一次循环 嵌套循环中出现continue语句 则执行本嵌套的下一次循环 18 其他流程控制语句continue break return 1 continue 例如 请思考下列程序及其运行结果 说明原因 a 3 b 6 fori 1 3b b 1ifi 2continueenda a 2end i 1时b 7i 2时b 8a 5i 3时b 9a 7 当if条件满足时 程序将不再执行continue后面的语句 而是开始下一次的循环 19 其他流程控制语句continue break return 2 break 用于终止for和while循环的执行 出现break语句 则退出循环体 嵌套循环中出现break语句 则仅退出本次循环 20 其他流程控制语句continue break return 2 break 例如 请思考下列程序及其运行结果 说明原因 a 3 b 6 fori 1 3b b 1ifi 2breakenda a 2end i 1时b 7a 5i 2时b 8a 7i 3时b 9a不变 程序说明 1 当if条件不满足时 程序执行a a 2 2 当if条件满足时 程序将执行break语句 跳出循环体 21 其他流程控制语句continue break return 3 return 用于终止当前函数的运行 返回到调用该函数的函数 A 123 001 m n size A if m n disp MatrixAisasquare returnelseif m n disp MatrixAisnotasquare returnend 运行结果 MatrixAisnotasquare 22 4 3M文件 MATLAB工作模式命令行方式 程序文件驱动模式MATLAB文本编辑器 23 4 3M文件 所谓的M文件是由MATLAB语句 命令或函数 构成的ASCII码文本文件 文件名必须以 m 为扩展名 M文件有两种形式 1 命令文件 2 函数文件 24 4 3 1命令文件 又称为脚本文件 是一串指令的集合 用户只需键入该命令文件的文件名 系统就会自动逐行执行该文件中的各条语句 不需要输入参数 也没有输出参数 所处理变量为工作空间变量适用于小规模运算 25 4 3 2函数文件 以function语句开始的M文件 可以接受输入参数和返回输出参数 所使用的变量为临时的局部变量 当运行完毕函数文件 其变量空间被释放 26 4 3 2函数文件 函数文件基本格式 function 输出形参列表 函数名 输入形参列表 注释说明语句段程序语句段 27 4 3 2函数文件 28 命令文件与函数文件的区别P187 29 4 3 3局部变量和全局变量 1 局部变量只在本函数的工作区内有效 一旦退出该函数 即为无效变量 在函数文件中定义及使用的变量都是局部变量2 全局变量在退出文件后仍为有效变量命令文件中定义或使用的变量都是全局变量 30 4 3 3局部变量和全局变量 global变量名 定义一个变量为全局变量说明 变量名区分大小写习惯上 globalABC 大写字母为全局变量 31 4 3 3局部变量和全局变量 1 先建立函数文件wadd m 该函数将输入的参数加权相加 functionf wadd x y globalABf A x B y 例如 全局变量应用示例 2 然后保存文件名为 wadd m 32 4 3 3局部变量和全局变量 例如 全局变量应用示例 3 在命令窗口中输入 globalAB A 1 B 2 s wadd 1 2 33 4 3 4数据及数据文件 1 MATLAB提供六种基本的数据类型 1 双精度型 double A 5 或 3 6 12 34 2 3i 2 字符型 char B hi 或 3 4i 3 稀疏矩阵 sparse 只存储矩阵中的非0元素 4 单元数组型 cell 数组中的每个元素可以是其他任何一种数据类型 可将尺寸大小不同的数组组合在一起 D 1 good 1 2 3 一 数据类型 34 4 3 4数据及数据文件 1 MATLAB提供六种基本的数据类型 5 结构数组型 struct E color red E mat magic 3 6 8位型 uint8 8位无符号整数数组 最大可表示255 不能用于数学运算 用于内存存储变量 一 数据类型 35 2 MATLAB6 0中还有如下数据类型 1 8位符号整型 int8 128 127 2 16位符号整型 int16 32768 32767 3 16位无符号整型 uint16 0 65535 4 32位符号整型 int32 2147483648 2147483647 5 32位无符号整型 uint32 0 4294967295 4 3 4数据及数据文件 36 上述所有数据类型中 1 最常使用的是双精度型和符号型MATLAB提供的绝大部分函数都是对双精度型矩阵或符号型矩阵进行操作 4 3 4数据及数据文件 37 上述所有数据类型中 2 其他几种数据类型用于特殊的场合 uint8 uint16 uint32 用于图象处理 内存存储稀疏型 用于稀疏矩阵的存储单元型和结构型 用于编写大型软件 4 3 4数据及数据文件 38 二 数据文件 1 以 mat为扩展名的二进制数据文件2 以 txt dat为扩展名的ASCII码数据文件3 以 bmp jpg为扩展名的图象数据文件4 以 wav为扩展名的声音数据文件 4 3 4数据及数据文件 39 三 数据输入向导 ImportWizard 用于将各种类型的数据文件中的数据导入工作空间 可以是 mat txt bmp wav等 File ImportData 选择该项后弹出Import对话框 在对话框中输入需要导入的数据文件名 mat txt bmp wav 打开文件可以显示数据输入向导窗口 操作步骤 4 3 4数据及数据文件 40 四 数据的输入与输出 1 save 将工作空间中的变量进行保存 说明 mat格式存储数据 可保存当前工作空间中的各种变量 dat格式存储数据 只能保存数值型变量 4 3 4数据及数据文件 41 load 将matlab mat的内容读入内存 loaddfile 将dfile mat的内容读入内存 loaddfile dat 将dfile datASCII文件读入内存 4 3 4数据及数据文件 四 数据的输入与输出2 load 将磁盘文件中保存的数据调入工作空间 42 4 4M文本编辑器 利用MATLAB编程语言所编写的程序被称作M文件 后缀形式是 m 可以利用任何的文本编辑器来建立 编辑和修改 只要使文件的后缀为 m 即可 MATLAB还提供了一个内置的编辑器 43 4 4M文本编辑器 MATLAB文本编辑器是一个集编辑与调试两种功能于一体的工具环境 利用它不仅可以完成基本的文本编辑操作 还可以对M文件进行调试 启动编辑器的方法 edit或 editaverage 单击 新建 命令图标 单击File New M file 44 4 4M文本编辑器 打开已有M文件的三种操作方法 editfilename filename是待打开文件名 可不带扩展名 单击MATLAB命令窗口工具栏上的图标 再从弹出的对话框中选择需打开的文件 单击File Open 再从弹出对话框中选择需打开的文件 45 4 4M文本编辑器 3 程序调试方法 1 直接调试法 检查所调用的函数或命令的拼写是否正确 括号是否配对 各种流程控制语句是否匹配 检查所调用的函数或M文件是否在当前目录或搜索路径中 46 4 4M文本编辑器 3 程序调试方法 2 调试器的使用STEP1 File New M File打开编辑窗口STEP2 Debug Run开始运行程序 当出现错误时 运行自动停止 在命令窗口根据错误信息找到相应的程序位置 也可用鼠标点击命令窗口中出现的带有下划线的错误信息 光标将自动找到程序中的错误行 47 例 计算向量或矩阵的平均值 文件名为aver m 4 4M文本编辑器 functiona average x AVERAGEmeanvalue forvectors AVERAGEisthemeanvalue forMatrix AVERAGEisarowvector NON vetorinputresultsinanerror m n size x ifm 1m n enda sum x m 将向量或矩阵的行 列值分别赋值于m和n sum x 求向量或矩阵的和 第一步 48 4 4M文本编辑器 第二步 将该文件保存在指定路径 并命名为average m 注意 必须将当前路径 CurrentDirectory 与文件的保存路径一致 否则不能通过 49 4 4M文本编辑器 x 26 1000 average x a 513 x 111 224 average x ans 1 50001 50002 5000 第三步 在命令行下输入以下指令 50 应用举例 1 求1 2 3 5 的值clearsum 0 fori 1 5pdr 1 fork 1 ipdr pdr k endsum sum pdr endsum 运行结果 sum 153 sum为全局变量 51 应用举例 1 求1 2 3 5 的值将代码保存为jiecheng m 运行如下 当currentdirectory为jiecheng m保存路径时 jiecheng 需编辑时 editjiecheng 52 应用举例 2 鸡兔同笼问题 鸡和兔子关在一个笼子里 已知共有头36个 脚100个 求笼内关了多少只兔子和多少只鸡 jitu m chicken 1 while1ifchicken 100 2 chicken 4 36break endchicken chicken 1 endchickenrabbit 100 2 chicken 4 运行结果 chicken 22rabbit 14 53 function xy mypower
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年微滴灌施肥装置项目发展计划
- 2025年放射性核素遥控后装机项目建议书
- 2025年证券经纪代理与营业部服务项目发展计划
- 抗生妇产科素使用课件
- 2025年海南省澄迈县中考数学模拟试卷(二)(含答案)
- 2025年汽车轮胎压力监测系统合作协议书
- 2025年青马班考试题目及答案
- 2025年毕节地区考试试卷及答案
- 2025年设备能源考试题型及答案
- 慢性肉芽肿性疾病
- (2025秋新版)人教版八年级历史上册全册教案
- 医务人员职业暴露预防及处理课件(完整版)
- 七年级英语阅读理解55篇(含答案)
- C语言程序设计 课件 第1章-C语言概述
- 中职学校《机械基础》第二学期全套电子教案(含教学进度计划)(配套教材:高教版中职统编)云天课件
- 《重性精神疾病管理治疗工作规范》综合解读
- 装饰装修工程培训课件(ppt-162页)
- 08S305-小型潜水泵选用及安装图集
- 全科医师转岗培训题库全
- 泰山版(2018版)小学信息技术第1册教学计划
- 老年人高血压防治知识讲座
评论
0/150
提交评论