已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 2 6M文件及程序调试 2 6 1M文件M文件的分类用MATLAB语言编写的程序 称为M文件 M文件可以根据调用方式的不同分为两类 主程序文件 ScriptFile 函数文件 FunctionFile 2 例 建立一个命令文件将变量a b的值互换 然后运行该命令文件 程序1 首先建立命令文件并以文件名exch m存盘 clear a 1 10 b 11 12 13 14 15 16 17 18 c a a b b c ab然后在MATLAB的命令窗口中输入exch 将会执行该命令文件 3 程序2 首先建立函数文件exch m function a b exch a b c a a b b c 然后在MATLAB的命令窗口调用该函数文件 clear x 1 10 y 11 12 13 14 15 16 17 18 x y exch x y 4 2 6 2M文件的建立与打开M文件是一个文本文件 它可以用任何编辑程序来建立和编辑 而一般常用且最为方便的是使用MATLAB提供的文本编辑器 1 建立新的M文件为建立新的M文件 启动MATLAB文本编辑器有3种方法 1 菜单操作 从MATLAB主窗口的File菜单中选择New菜单项 再选择M file命令 屏幕上将出现MATLAB文本编辑器窗口 2 命令操作 在MATLAB命令窗口输入命令edit 启动MATLAB文本编辑器后 输入M文件的内容并存盘 3 命令按钮操作 单击MATLAB主窗口工具栏上的NewM File命令按钮 启动MATLAB文本编辑器后 输入M文件的内容并存盘 5 2 打开已有的M文件打开已有的M文件 也有3种方法 1 菜单操作 从MATLAB主窗口的File菜单中选择Open命令 则屏幕出现Open对话框 在Open对话框中选中所需打开的M文件 在文档窗口可以对打开的M文件进行编辑修改 编辑完成后 将M文件存盘 2 命令操作 在MATLAB命令窗口输入命令 edit文件名 则打开指定的M文件 3 命令按钮操作 单击MATLAB主窗口工具栏上的OpenFile命令按钮 再从弹出的对话框中选择所需打开的M文件 6 2 6 3主程序文件 一般是由用户为解决特定问题 将原本要在MATLAB命令窗口中直接输入的语句 放在一个以 m为后缀的文件中而编写的程序 通常MATLAB主程序文件由两部分组成 1 有关程序的功能 使用方法等内容的注释部分 2 程序的主体 7 1 有关程序的功能 使用方法等内容的注释部分主程序前面若干行通常是程序的注释 每行以 开始 注释是对程序用途的说明 也包括了运行时对用户输入数据的要求 此部分内容在运行时不被执行 在命令窗口输入 help文件名 指令时 屏幕上会将该文件中以 开头的最前面几行内容显示出来 使用户知道如何使用 用 type文件名 则会显示M文件的全部内容 8 2 程序的主体由若干条MATLAB函数命令组成 实现程序设计功能 通常用clear closeall等语句开始 清除工作空间中原有的变量和图形 以避免其他已执行程序的残留数据对本程序的影响 如果文件中有全局变量 即子程序与主程序公用的变量 应在程序的起始部分注明 格式为 Global变量名1变量名2 注意 程序中必须都用半角英文字母和符号 9 主程序的运行 在MATLAB命令窗口中 直接输入程序文件名 或 run程序文件名 回车后系统就自动执行文件中的程序 文件名不允许用汉字 10 思考题1 求一元二次方程ax2 bx c 0的根 程序如下 a input a b input b c input c d b b 4 a c x b sqrt d 2 a b sqrt d 2 a disp x1 num2str x 1 x2 num2str x 2 思考题2 将实验二的部分程序编写为M文件并运行 11 2 6 4函数文件1 函数文件的基本结构函数文件由function语句引导 其基本结构为 function输出形参表 函数名 输入形参表 注释说明部分函数体语句其中以function开头的一行为引导行 表示该M文件是一个函数文件 函数名的命名规则与变量名相同 输入形参为函数的输入参数 输出形参为函数的输出参数 当输出形参多于一个时 则应该用方括号括起来 12 例 编写函数文件求半径为r的圆的面积和周长 函数文件如下 function s p fcircle r CIRCLEcalculatetheareaandperimeterofacircleofradiir r圆半径 s圆面积 p圆周长 2006年2月30日编s pi r r p 2 pi r 13 2 函数调用函数调用的一般格式是 输出实参表 函数名 输入实参表 要注意的是 函数调用时各实参出现的顺序 个数 应与函数定义时形参的顺序 个数一致 否则会出错 函数调用时 先将实参传递给相应的形参 从而实现参数传递 然后再执行函数的功能 14 例 利用函数文件 实现直角坐标 x y 与极坐标 之间的转换 函数文件tran m function rho theta tran x y rho sqrt x x y y theta atan y x 用主程序文件main1 m调用函数文件tran m x input Pleaseinputx y input Pleaseinputy rho the tran x y rhothe 15 在MATLAB中 函数可以嵌套调用 即一个函数可以调用别的函数 甚至调用它自身 一个函数调用它自身称为函数的递归调用 例 利用函数的递归调用 求n n 本身就是以递归的形式定义的 显然 求n 需要求 n 1 这时可采用递归调用 递归调用函数文件factor m如下 functionf factor n ifn 1f 1 elsef factor n 1 n 递归调用求 n 1 end 16 3 函数参数的可调性在调用函数时 MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数 只要在函数文件中包含这两个变量 就可以准确地知道该函数文件被调用时的输入输出参数个数 从而决定函数如何进行处理 17 例 nargin用法示例 函数文件examp m 主程序文件mydemo m functionfout examp a b c x 1 3 ifnargin 1y 1 2 3 fout a examp x elseifnargin 2examp x y fout a b examp x y 3 elseifnargin 3fout a b c 2 end 18 4 全局变量与局部变量例 全局变量应用示例 先建立函数文件wadd m 该函数将输入的参数加权相加 functionf wadd x y globalABf A x B y 在命令窗口中输入 globalABA 1 B 2 s wadd 3 4 19 2 6 5程序调试1 程序调试概述一般来说 应用程序的错误有两类 一类是语法错误 另一类是运行时的错误 语法错误包括词法或文法的错误 例如函数名的拼写错 表达式书写错等 程序运行时的错误是指程序的运行结果有错误 这类错误也称为程序逻辑错误 由于在函数程序中出错停机时 其变量不作保存 20 2 MATLAB调试菜单MATLAB的M文件编辑器除了能编辑修改文件外 还能对程序进行调试 通过调试菜单 可以查看和修改函数工作空间中的变量 从而准确地找到运行错误 通过调试菜单设置断点可以使程序运行到某一行暂停运行 这时可以查看和修改各个工作空间中的变量 通过调试菜单可以一行一行地运行程序 下面介绍调试菜单Debug 21 22 3 调试命令除了采用调试菜单调试程序外 MATLAB还提供了一些命令用于程序调试 命令的功能和调试菜单命令类似 具体使用方法请读者查询MATLAB帮助文档 23 程序的暂停暂停程序的执行可以使用pause函数 其调用格式为 pause 延迟秒数 如果省略延迟时间 直接使用pause 则将暂停程序 直到用户按任一键后程序继续执行 若要强行中止程序的运行可使用Ctrl C命令 24 使用pause人机交互命令 theta pi 0 01 pi rho 1 2 sin 5 theta 2 rho 2 cos 10 theta 3 rho 3 sin theta 2 rho 4 5 cos 3 5 theta 3 fork 1 4polar theta rho k pauseend 25 Keyboard命令在子程序中适当部位加keyboard命令 执行到此处时 系统会暂停而等待用户输入命令 这时子程序中的变量还存于工作空间中 可以对它进行检查 若想继续运行完剩余程序代码 则键入return指令即可 26 例 下面的M文件ff m中使用的keyboard命令 a 3 A 4 b a 2 B b 2 1 c a A 2 B keyboardC b 2 B c 27 内存变量的存储与下载利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来 扩展名是 mat MAT文件的生成和装入由save和load命令来完成 常用格式为 save文件名 变量名表 load文件名 变量名表 28 其中 变量名表中的变量个数不限
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋服务费协议合同
- 房屋渠道佣金协议书
- 房屋租赁消防协议书
- 房屋自愿搬迁协议书
- 房屋装修粉刷协议书
- 房屋资产交割协议书
- 房屋重建协议书模板
- 房屋预定合同协议书
- 房租提前退房协议书
- 房间转租协议书范本
- 呼和浩特市春华水务集团公司招聘笔试历年参考题库附带答案详解
- 哈三中2026届高三上期期中考试英语试卷(含答案)
- 2025年中学生心理测试题及答案
- 2022北京首都师大附中高一12月月考数学(教师版)
- 宣城市中医院透析患者营养评估与指导考核
- 行业会计教学课件
- 2025年及未来5年中国低端服务器市场运行态势及行业发展前景预测报告
- 参考活动4 神奇的DNA教学设计-2025-2026学年初中综合实践活动苏少版七年级上册-苏少版
- (正式版)DB65∕T 4687-2023 《10千伏客户业扩工程典型设计规范》
- GJB1330A-2019军工产品批次管理的质量控制要求
- 大型储罐拆除施工方案(3篇)
评论
0/150
提交评论