第四章Matlab语言程序设计基础

上传人:资****亨 文档编号:130064715 上传时间:2020-04-24 格式:PPT 页数:80 大小:345.50KB
返回 下载 相关 举报
第四章Matlab语言程序设计基础_第1页
第1页 / 共80页
第四章Matlab语言程序设计基础_第2页
第2页 / 共80页
第四章Matlab语言程序设计基础_第3页
第3页 / 共80页
第四章Matlab语言程序设计基础_第4页
第4页 / 共80页
第四章Matlab语言程序设计基础_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《第四章Matlab语言程序设计基础》由会员分享,可在线阅读,更多相关《第四章Matlab语言程序设计基础(80页珍藏版)》请在金锄头文库上搜索。

1、第四章Matlab语言基础 matlab语言程序简洁 可读性很强而且调试十分容易 是matlab重要组成部分 第四章Matlab语言基础 4 1MATLAB数据结构 4 2M文件简介4 2 1脚本文件4 2 2函数文件 4 3MATLAB的输入与输出语句 4 4程序结构 4 5程序的流程控制辅助语句 4 6程序文件的格式特征 4 7MATLAB搜索路径 文件管理 4 8MATLAB程序调试技巧 4 2M文件简介 M文件是由MATLAB语句构成的ASCII码文件 用户可以用普通的文本编辑把一系列MATLAB语句写进一个文件里 给定文件名 确定文件的扩展名为 m 并存储 1 用MATLAB自带的编

2、辑器 edit2 用文本文档编辑文件 M文件的编辑方法 1 脚本文件 Scripts 也称命令文件 是由用户为解决特定的问题而编制的 m文件 2 函数文件 Function 子程序 可由用户编写 但它必须由其它m文件来调用 M文件分为两种 脚本文件是最简单的m 文件 它没有入口和出口参数变量 可以自动执行一系列MATLAB命令等 脚本是对工作空间中的现有数据进行操作 或创建一个新数据 而且脚本所创建的任一变量在脚本运行完都保留在工作空间中以便进一步使用 4 2 1脚本文件 脚本文件举例 例1 tex1 m 计算一个球的体积r input radius area pi r 2 volume 4

3、3 pi r 3 fprintf Thevolumeofasphereis 12 5f n volume 写好上述程序后即可在指令视窗下键入tex1 即可执行已建立的tex1 m文件 4 2 2函数文件 函数文件的第一行包含function功能 建立一个函数 可以同MATLAB的库函数一样使用 1 函数M 文件的组成格式 function 输出参数列表 函数名 形式参数列表 函数体语句 注 函数m文件的文件名必须与其函数名相同 输出变量如果多于1个 则用方括号括起来 且用逗号隔开 当函数无输出参数时 输出参数项空缺或者用空的中括号表示 function V D eig A 语句体 例1 建立函

4、数文件求圆面积 function area volume circle fun r r为圆半径 area返回面积值 volume返回体积值area pi r 2 volume 4 3 pi r 3 2 函数文件举例 保存为circle fun m函数M文件 r 5 输入r值 area volume circle fun r 调用函数circle fun 例2 编一个绘制图示波形的函数 在文本编辑窗口输入functiony tri t 函数名tri t为横坐标 y为纵坐标y abs t 1 调用函数tri 并画出它的波形 t 2 0 05 2 定义自变量plot t tri t axis 1 5

5、 1 5 0 5 1 5 1 函数定义行 关键字function function out1 out2 in1 in2 输入和输出 返回 的参数个数分别赋值给nargin和nargout两个MATLAB保留的变量 2 第一行帮助行以 开头 作为help指令显示的行 3 函数体说明及有关注解以 开头 用以说明函数的作用及有关内容如果不希望显示某段信息 可在它的前面加空行 3 函数M 文件的格式 包括4部分 4 函数体语句函数体内使用的除返回和输入变量这些在function语句中直接引用的变量以外的所有变量都是局部变量 即在该函数返回之后 这些变量会自动在MATLAB的工作空间中清除掉 如果希望这

6、些中间变量成为在整个程序中都起作用的变量 则可以将它们设置为全局变量 global 4 函数文件与脚本文件的主要区别 3点 由定义行function起头 后跟的函数名必须与文件名相同 函数具有输入输出变量 可进行变量传递 除非用global声明 函数文件中的变量均为局部变量 不保存在工作空间中 即 程序在自己的工作空间中操作变量 与工作空间分开 无法访问 4 3MATLAB的输入与输出语句 x input 请输入参数x 2a input 请输入矩阵a 1 2 3 4 s input Pleaseinputstrings 通信051 3 输入字符串时注意加单引号 1 提示对话输入命令 input

7、 name input Inputyourclassnameplease s s代表字符串 string Inputyourclassnameplease 通信06 1 此种情况 键入名字 通信06 1 不用加 name 通信 自由格式 disp 和格式化输出 fprintf 2 输出格式 x 2 直接查看 x disp x ab 字符向量ab disp ab ab temp 20 disp temp disp temp表示温度 disp num2str temp 度C 20temp表示温度20度C 1 disp直接输出文字或是一数值 举例 disp显示指定变量的结果 而不显示变量名称 指令f

8、printf用来控制输出数据及文字的格式 其基本格式如 2 fprintf格式输出 由 引导 f 小数形式输出e 指数形式输出d 1位整数位形式输出 1 234500e 001 fprintf Theareais 8 5f n area 在二个单引号间包括输出的字串Theareais 接着是输出数据的格式 8 5f 再后来是换行符号以避免下一个输出数据或是提示符号也挤在同一行 最后键入要输出的数据名area 例如Theareais12 56637 输出值为8位数含5位小数 f form 12345 fprintf e form 12 5e n 12345 2 输出值为指数格式的12位数 含5位

9、小数 e form 1 23452e 004 fprintf e form d n 12345 2 e form 1 234520e 004 fprintf f form 12 0f n 12345 2 输出值为整数格式的12位数 以下的例子各说明了不同形态的输出格式 4 4程序结构 与C语言类似 MATLAB程序的控制结构也有顺序结构 选择结构和循环结构三种 另外有一种试探结构其控制语句主要有if while for switch四个 下面分别进行介绍 if else语句switch case语句 一 条件语句 选择结构语句 1 if条件语句 if条件式语句组 end if条件式1语句组1

10、elseif条件式2语句组2 else语句组3 end 注意elseif中间无空格 例1 建立符号函数sign x x input x ifx 0sn 1 elseifx 0sn 0 elsesn 1 endfprintf x 5f sn 0f n x sn DTMF拨号音编解码的实现 switchswith expr分支条件 结果为数值或字符串 casecase expr1数值 或字符串 常量表达式1case 数值 或字与符串 常量表达式case expr2 数值 或字符串 常量表达式case expr3 case数值 或字符串 常量表达式NotherwiseEnd 格式 2 switch分

11、支结构 No input Pleaseinputyourchoice 0 1 2 3 switchNocase0disp returntomainmenu case1disp Sheisagirl case2disp Heisaboy otherwisedisp Ican tdetermine end 例1 变量做分支条件 例2 输入一个数 判断它是否能被5整除 n input 输入n switchmod n 5 case0fprintf d可被5整除 n otherwisefprintf d不能被5整除 n end 函数做分支条件 例3 编写一个函数 将百分制的学生成绩转换为五级制的成绩 使

12、用结构 Functionf TranGrade x switchfix x 10 case 10 9 f A case8f B case7f C case6f D otherwisef E end 函数做分支条件 在switch语句中 switch是语句的开始 紧接着的是分支条件 分支条件可以是一个变量 函数 或者表达式 不同的case可以定义不同的运算指令 而紧接在case后面的就是此case的分支条件 之后接着一个或一串运算指令 若不符合所有的case条件 则程序就会执行otherwise下面的表达式 语句以end作为结束 1 switch expr的结果必须是一个数值或者是一个字符串 如

13、果是一个数值 标量 switch expr case exprN就被每一个case语句检测 如果是一个字符串 就用strcmp switch expr case exprN 进行检测 2 在一个case语句后 可以拥有多个常量表达式其执行过程为首先计算选择表达式swith expr的值 然后与各个case语句中的常量比较 然后选择第一个与之匹配的case语句组执行 执行完毕后立即退出switch语句组 若没有与选择表达式值相匹配的case语句 则执行othwise后的语句组 并退出switch语句组 只执行第一个检验成功 符合条件的case语句 而跳过其他case运算 使用switch结构必须

14、注意三点 key input pleaseinputkeyvaluve 0 9or or s fl 0 switchkeycase 1 2 3 fl 697 当开关表达式的值等于表达式1时 将执行语句段1 执行完语句段1后将转出开关体 无需像c语言那样在下一个case语句前加break语句 当需要在开关表达式满足若干个可以枚举的表达式之一时执行某一程序段 则应该把这些表达式用 起来 中间用逗号分隔 3 MATLAB开关switch语句与c的区别 当前面枚举的各个表达式均不满足时 则将执行otherwise语句后面的语句段 此语句等价于c语言中的default语句 在case语句引导的各个表达式

15、中 不要用重复的表达式 否则列在后面的开关通路将永远也不能执行程序的执行结果和各个case语句的次序无关 for变量 表达式 end while条件式 end for语句多用在已知循环次数的情况 而while语句则多用在不能判定循环次数的情况下 只要条件式的值为1 真 就执行while与end之间的语句体 直到表达式的值为0 假 时终止该循环 二 循环语句 for语句和while语句 例1 编写计算s 1 2 3 100的MATLAB程序 s 0 forn 1 100 默认步长为1s s n end 1 for循环语句举例 jiujiu 1000000002400000003690000004

16、8121600000510152025000061218243036000714212835424900816243240485664091827364554637281 clc clearjiujiu zeros 9 9 预分配数组空间fori 1 9 forj 1 i jiujiu i j i j endendjiujiu 例2 设计九九乘法表 A 111111111222222222333333333444444444555555555666666666777777777888888888999999999 B 123456789123456789123456789123456789123456789123456789123456789123456789123456789 上机作业 用两矩阵点乘 如何实现九九表 上机作业 用两矩阵点乘 如何实现九九表 clc cleara 1 9 A repmat a 1 9 b 1 9 B repmat b 9 1 Jiujiu tril A B jiujiu 100000000240000000369000000481216000005101

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号