已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 实验三M文件与程序设计 一 M文件 二 程序控制结构 三 函数文件 matlab语言称为第四代编程语言 程序简洁 可读性很强 而且调试十分容易 是matlab的重要组成部分 2 一 M文件 1 M文件概述 用MATLAB语言编写的程序 称为M文件 M文件可以根据调用方式的不同分为两类 命令文件 ScriptFile 和函数文件 FunctionFile 2 M文件的建立与打开 1 建立新的M文件 菜单操作 菜单选择File New M file命令操作 命令窗口中输入edit命令按钮 单击工具栏上的NewM File命令 3 操作后会启动MATLAB文本编辑器 输入M文件的内容并存盘就建立了一个新的M文件 注 储存时文件名遵循MATLAB变量命名的原则 但必须以m为扩展名 4 2 打开已有的M文件 菜单操作 菜单选择File Open 选择文件命令操作 命令窗口中输入 edit文件名命令按钮 单击工具栏上的OpenFile命令 选择文件 3 命令文件 一个复杂的程序我们可以建立一个文本文件并把它储存起来 可以随时调用进行计算 这就是命令文件 执行时只要在工作区中键入不带扩展名的文件名即可 注 命令文件中的变量都是全局变量 在执行过程中 其命令可以使用工作区中的变量 它所产生的变量也将成为工作区的一部分 5 以文件名f1c m存盘 然后在命令窗口中输入 f1c InputFahrenheittemperature 73 c 22 7778 clear f input InputFahrenheittemperature c 5 f 32 9 例1建立命令文件 将华氏温度f转换为摄氏温度c 在文本编辑器中输入 6 二 程序控制结构 1 顺序结构 依次顺序执行程序的各条语句 matlab语言的程序控制结构与其它高级语言是一致的 分为顺序结构 选择结构 循环结构 1 数据的输入 input 调用格式 A input 提示信息 选项 其中提示信息为一个字符串 用于提示用户输入什么样的数据 如果在input函数调用时采用 s 选项 则允许用户输入一个字符串 2 数据的输出 disp 调用格式 disp 输出项 其中输出项既可以为字符串 也可以为矩阵 7 例2输入x y的值 并将它们的值互换后输出 x input Inputxplease y input Inputyplease z x x y y z disp x disp y 存盘为f1 m 在命令窗口中输入 f1 Inputxplease 5 Inputyplease 6 65 8 3 关系运算符 MATLAB的关系运算符有 大于 大于或等于 等于 不等于 关系运算比较两个数值 若真则值为1 若不成立则值为0 关系运算符可以作用于两个同样大小的矩阵或数组 例3A 1 5 B 5 1 1 A 12345B 54321 C A 4 C 00011 D A B D 00100 9 4 逻辑运算符 MATLAB的逻辑运算符有 与运算 或运算 非运算 逻辑运算将任何非零元素视为1 真 可以作用于矩阵或数组 例4a 1 9 b 9 a c a 4 d a 3 b 6 a 123456789b 876543210c 111100000d 000111111 10 5 逻辑函数 MATLAB还提供了一些关系和逻辑函数 常见的有all和any all x 当x是一个向量 所有元素非0时 值为1 否则为0 当x是一个矩阵时 作用于每一列 any x 当x是一个向量 有一元素非0时 值为1 否则为0 当x是一个矩阵时 作用于每一列 例5a 10 50 3082 b all a c any a d all b e any c a 10 50 3082b 1010c 1011d 0e 1 11 2 选择结构 根据一定条件来执行的各条语句 1 if语句 条件语句if最简单的用法是 if条件end 如果条件成立 则语句1执行 否则 执行end的后继命令 如果条件成立 则语句1执行 否则 语句2执行 然后执行end的后续命令 if语句的另一种用法是 if条件elseend 12 if条件1elseif条件2 elseif条件nelseend 当我们有多个选择时 还可以用下列结构 13 ifx 0f 0elseifx pi 2f sin x elsef 1end 例6计算分段函数的值 14 2 switch语句 switch语句根据表达式的值来执行相应的语句 用法如下 switch 表达式 casevalue1 语句1 casevalue2 语句2 otherwise 语句n end 15 例7某商场对顾客所购买的商品实行打折销售 标准如下 商品价格用price来表示 price 200没有折扣200 price 5003 折扣500 price 10005 折扣1000 price 25008 折扣2500 price 500010 折扣5000 price14 折扣输入所售商品的价格 求其实际销售价格 price input 请输入商品价格 switchfix price 100 case 0 1 rate 0 case 2 3 4 rate 3 100 casenum2cell 5 9 rate 5 100 程序为 16 ff2 请输入商品价格700 price 665 存盘为ff2 m 在命令窗口中输入 casenum2cell 10 24 rate 8 100 casenum2cell 25 49 rate 10 100 otherwiserate 14 100 endprice price 1 rate 17 3 try语句 try语句用法如下 try 语句1 catch 语句2 end 运行时先试探性执行语句组1 如果语句组1在执行过程中出现错误 则将错误信息付给保留的lasterr变量 并转去执行语句组2 18 1 for语句 循环语句for的一般形式为 for 循环变量 初值 步长 终值 循环体语句 end 例8x 1 1 fori 2 6x i 2 x i 1 endx x 12481632 3 循环结构 被重复执行的一组语句 循环是计算机解决问题的主要手段 注 步长为1时可以省略 19 for循环的另一种形式是 for 循环变量 数组或矩阵 循环体语句 end执行过程是依次将矩阵的格列元素赋给循环变量 然后执行循环体语句 直至各列元素处理完毕 例9I 12 34 fori Ik i 1 f k i k endf f 14316 20 循环语句可以嵌套 即一个循环结构的循环体又包括一个循环结构 也称为多重循环 例10fori 1 3forj 1 4a i j 1 i j 1 endendformatrata a 11 21 31 41 21 31 41 51 31 41 51 6 21 2 while语句 如果不知道循环次数 可以使用while循环来完成 其一般形式为 while条件 命令语句集 end 例11用while循环求1 100间整数的和 sum 0 i 1 whilei 100sum sum i i i 1 endsum sum 5050 22 MATLAB还提供了跳出循环的break语句 遇到此语句立即执行此循环end的后续语句 3 break语句和continue语句 continue语句控制跳过循环体中的某些语句 当在循环体内执行到该语句时 程序将跳过循环体中所有剩下的语句 继续下一次循环 例12求 100 200 之间第一个能被21整除的整数 forn 100 200ifrem n 21 0continueendbreakendn n 105 23 三 函数M 文件 我们可以根据需要建立自己的函数文件 它们能够象库函数一样方便地调用 从而极大地扩展MATLAB的功能 如果对于一类问题建立起许多函数M 文件 就能形成独立的工具箱 function因变量 函数名 自变量 注释说明部分函数体语句 注2 这个M 文件的文件名必须是函数名 m 1 函数文件的基本结构 函数M 文件必须由function语句引导 其基本结构为 注1 若因变量不止一个 可用方括号将它们括起来 并用逗号分开 每一行 后的内容只作为程序的注释 MATLAB不执行 24 2 函数调用 函数调用的一般格式是 因变量 函数名 自变量 以文件名f2c m存盘 然后在命令窗口中输入 y input InputFAhrenheittemperture x f2c y InputFahrenheittemperture 70 c 21 1111x 21 1111 functionc f2c f c 5 f 32 9 例13建立函数文件 将华氏温度f转换为摄氏温度c 在文本编辑器中输入 25 functionf eryuan x y f y 2 2 x y 2 2 x eryuan 3 2 ans 5 例14定义多元函数 建立函数文件eryuan m 在命令窗口中输入 26 函数可以嵌套调用 即一个函数可以调用别的函数 甚至调用它自身 一个函数调用它自身称为函数的递归调用 例15利用函数的递归调用求n functionf factor n ifn 1f 1 elsef factor n 1 n end 递归调用函数文件factor m如下 factor 5 ans 120 27 例16求解数学问题 鸡兔同笼问题 求2个自然数 它们的和等于100 且第一个数被2除的商与第二个数被4除的商的和为36 i 1 whilei 100ifrem 100 i 2 4 0enda1 i 2a2 100 i 2 a1 44a2 56 四 应用举例 28 例17从键盘输入若干个数 当输入0时结束输入 求这些数的平均值和它们的和 sum 0 cnt 0 val input Enteranumber endin0 while val 0 sum sum val cnt cnt 1 val input Enteranumber endin0 endif cnt 0 summean sum cntend 建立命令文件li17 m 29 li17 Enteranumber endin0 8 Enteranumber endin0 9 Enteranumber endin0 7 Enteranumber endin0 0 sum 24mean 8 30 附 猜数字 forh 1 20 y floor rand 1 4 0 1 ify 1 y 2 31 y y 1 1000 y 2 100 y 3 10 y 4 y int2str y z AaBb fork 1 8x input inputthenumber s a 0 b 0 fori 1 4 ifx i y i a a 1 endend 32 fori 1 4 forj 1 4 ifx i y j b b 1 endendendz 2 int2str a z 4 int2str b zifa 4congratulation YouareWin breakendifk 8Times over YouareLose endend 33 实验任务 1 建立函数的M文件 并计算f 10 和f 100 2 若一个三位整数各位数字的立方和等于该数本身 则称该数位水仙花数 输出全部水仙花数 3 个人所得税计算方法为 应纳个人所得税税额 应纳税所得额 2000 适用税率 速算扣除数不超过500元的 税率5 速算扣除数为0 超过500元至2000元的部分 税率10 速算扣除数为25超过2000元至5000元的部分 税率15 速算扣除数为125超过5000元至20000元的部分 税率20 速算扣除数为375超过20000元至40000元的部分 税率25 速算扣除数为1375 34 超过40000元至60000元的部分 税率30 速算扣除数为3375超过6000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏二级建造师继续教育考试题库及
- 2026年注册土木工程师(港口与航道工程)考试题库
- 2026年污水处理生物池运维管控考试题库
- 2026年平台企业合规管理完整试题及答案
- 2026年湖南衡阳高级统计师资格考试(高级统计实务与案例分析)试题库及答案
- 2026年法律援助工作站人员考核试卷(附答案)
- 2026年产科ICU护理实习生出科考试题及答案
- 毕节市2026届高三年级高考第二次适应性考试历史
- 管道平衡压袋的材质分类与性能特点
- 医院科研考试习题及标准答案
- 《AIGC与剪映专业版:短视频创作案例教程》-【教案】
- 2026年出租车从业考核题库完整参考答案详解
- 2026广东深圳市光明区财政局招聘国有企业财务总监1人备考题库含答案详解(完整版)
- 工程合同管理监理实施细则
- 边坡治理工程(抗滑桩、锚杆、锚索、挡板、冠梁)施工方案
- 竹木厂安全生产规章制度
- 智能电表采购合同范本
- 雨课堂学堂云在线《实yong绳结技术(大连海大) 》单元测试考核答案
- 项目监理工作用设备配置方案
- 儿科学惊厥课件
- T/CCASC 6008-2023氯碱行业聚氯乙烯树脂碳排放核算标准
评论
0/150
提交评论