已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章MATLAB编程 本章主要内容如下 4 1MATLAB程序控制4 2M脚本文件和M函数文件4 3串演算函数4 4保存和载入变量 4 1MATLAB程序控制 4 1 1for循环结构 forx array commands end 说明 for指令后的变量x称为循环变量 commands为循环体 循环体执行的次数由for后的数组array的列数决定 例4 1 绘制 t 0 18 的曲线 clf t 0 0 1 18 forx 0 2 0 2 0 8b sqrt 1 x 2 z atan b x y1 t x y2 t b z y 1 exp y1 sin y2 b plot t y holdonendxlabel t 秒 ylabel y title 二阶系统阶跃响应 text 3 3 0 9 xi 0 8 text 4 3 1 4 xi 0 2 阻尼比 计算 4 1MATLAB程序控制 4 1 2while循环结构 whileexpression commands end 说明 当while后expression为逻辑真 非0 时 执行循环体commands 只到表达式的值为假 当表达式的值为数组时 只有当该数组所有元素均为真时 才会执行循环体 如while后的表达式为空数组 MATLAB认为表达式为假 而不执行循环体 例4 2 一数组的元素满足规则 k 1 2 且 现要求该数组中第一个大于10000的元素 a 1 1 a 2 1 i 2 whilea i 10000a i 1 a i 1 a i i i 1 end i a i i 21ans 10946 执行结果为 4 1 3if else end分支结构单分支结构ifexpression commands End双分支结构ifexpression commands1 else commands2 end 多分支结构ifexpression1 commands elseifexpression2 commands else commands end 说明 多分支结构常被switch case所取代 如果判决条件为一个空数组 MATLAB认为条件为假 if指令判决和break指令配合使用 可强制终止for循环或while循环 4 1MATLAB程序控制 4 1 4switch case结构 switchexcasetest1 commands1 casetest2 casetestk commandsk otherwise commands end ex为一标量或字符串 当ex等于test1时 执行组命令1 然后跳出该结构 表达式不等于前面所有检测值时 则执行该组命令 例4 3 switch示例 将例4 1中的曲线按 值用不同颜色画出 t 0 0 1 18 forx 0 2 0 2 0 8b sqrt 1 x 2 z atan b x y1 t x y2 t b z y 1 exp y1 sin y2 b switchround 10 x case2plot t y r holdoncase4plot t y b holdoncase6plot t y k holdonotherwiseplot t y g holdonendendxlabel t 秒 ylabel y title 二阶系统阶跃响应 text 3 3 0 9 xi 0 8 text 4 3 1 4 xi 0 2 将x圆整成整数 采用switch结构 按x值 绘制不同颜色曲线 4 1MATLAB程序控制 4 1 5try catch结构 try commands1 catch commands2 end 说明 首先执行组命令1 只有当执行组命令1出现错误后 组命令2才会被执行 当执行组命令2又出错 则终止该结构 可用lasterr函数查询出错原因 例4 4 try catch结构演示 4 2M脚本文件和M函数文件 4 2 1M脚本 Scripts 文件脚本是最简单的M 文件 它没有入口和出口参数变量 可以自动执行一系列MATLAB命令 诸如重复命令等 脚本 Scripts 是对工作空间 workspace 中的现有数据操作 或创建一个新数据 而且脚本所创建的任一变量在脚本运行完都保留在工作空间中以便进一步使用 脚本可以直接在命令窗口用文件名直接调用 一般用clear closeall等语句开始 可清除掉工作空间中原有的变量和图形 以避免其他已执行的残留数据对本程序的影响 4 2M脚本文件和M函数文件 4 2 2M函数 Functions 文件M函数文件不同于M脚本文件 是一种封装结构 外界通过提供输入量 而得到函数文件的输出结果 从使用的角度 其具有以下特点 函数是接受入口参数返回出口参数的M 文件 程序在自己的工作空间中操作变量 与工作空间分开 无法访问 函数文件的第一行是 function 引导的 函数声明行 并罗列出函数与外界联系的全部 标称 输入输出宗量 MATLAB允许使用比标称数目较少的输入输出宗量 实现对函数的调用 4 2 3M函数文件的一般结构 functionsa circle r s CIRCLEplotacircleofradiirinthelinespecifiedbys r指定半径的数值 s指定线色的字符串 sa圆面积 ifnargin 2error 输入宗量太多 end ifnargin 1s b end clf t 0 pi 100 2 pi x r exp i t ifnargout 0plot x s elsesa pi r r fill real x imag x s end axis square 函数申明行 H1行 在线帮助文本 函数体 说明 1 H1行包含大写体的函数文件名 运用关键词简要描述的函数功能 该行提供lookfor关键词查询和help在线帮助使用 2 M脚本文件仅比M函数文件少一个函数申明行 说明 nargin nargout为输入 输出宗量检测指令 figure 3 sb 314 1593 figure 2 例4 2 1函数调用示例figure 1 sa circle 10 r figure 2 circle 10 k figure 3 sb circle 10 figure 1 sa 314 1593 4 2M脚本文件和M函数文件 4 2 4局部变量和全局变量局部 Local 变量存在于函数空间内部的中间变量 产生于函数的运行过程中 影响范围也仅限于函数本身 全局 Global 变量通过global指令 可定义为不同函数空间和基本空间共享的同一变量 即全局变量 说明 对全局变量的定义必须在该变量被调用之前 不提倡使用全局变量 因为它会损害函数的封装性 4 3串演算函数 4 3 1evaleval是一种串演算函数 它具有对字符串表达式进行计算的能力 其调用格式为y eval CEM 执行CEM指定的计算 y1 y2 eval CEM 执行对CEM代表的函数文件调用 并输出计算结果 指令 表达式 语句以及由它们综合组成的M文件是完成计算所最常使用的形式 为提高计算的灵活性 MATLAB还提供了eval和feval两种演算函数 常用于GUI的回调操作 例4 9 eval 指令演示 执行以下指令 演示一clear t pi eval theta t 2 y1 sin theta 演示二CEM cos sin tan fork 1 3theta pi k 12 y2 1 k eval CEM k num2str theta endy2 theta 1 5708y1 1y2 0 96590 50001 0000 运行结果显示如下 说明 演示二中 num2str为将非整数数组转换为串数组的指令 eval CEM k num2str theta 中 为用 表示的组合字符串 4 4数据接口 MATLAB支持两种数据接口 ImportingandExportingData 功能 使得用户可以十分方便地与其它的应用程序交换数据和信息 MATLAB与其他应用程序交换只接受两种数据形式 为 ASCII码的文本数据文件 MATLAB定义的MAT型数据 即所谓的MAT文件 数据结构包含 变量名 NAME 变量的维数 Dimensions 变量的类型 ClassName 变量的实数或复数类型 变量的存储属性 Storage 4 4数据接口 4 4 1数据存贮save命令save命令可以将MATLAB系统内部数据写为MAT文件当save生成MAT文档时 所储存的是变量本身 而非直接储存变量的数据 而当save生成的文档是ASCII文档时 则是直接储存变量的数值 save命令把工作空间中的全部变量值存入磁盘 如果不指定变量名 其默认的文件名为matlab mat 再次用save命令 就会将先前形成的matlab mat文件中的数据给冲掉了 save命令的存档格式有两种 二进制格式和ASCII码 如果数据只是在MATLAB中产生及被使用 以使用MAT file为宜 如数据文档要被其它不是MATLAB的应用软件所读取时 必须用ASCII file 4 4 1数据存贮save命令的调用方式save 将工作空间的全部变量以二进制形式存于matlab mat savefilename 将工作空间的全部变量以二进制形式存于filename mat savefilenamevariables 将工作空间的指定变量variables以二进制形式存于filename mat savefilenameoptions 用下表中的格式存储工作空间的全部变量 savefilenamevariablesoptions 用下表中的格式存储工作空间的指定变量 savetestabc将变量a b c以二进制格式存于名为test的 MAT文件中 可让电脑在读入 出 input output 时速率加快 savetestabc ascii将变量a b c以ASCII码格式存于名为test的文件中 无扩展名 ASCII file是以可辨识的字元储存 但会降低电脑在读入 出的速率 例 4 4数据接口 4 4 2数据输入load命令load是save的逆过程 它把磁盘上存储的mat数据文件取回到MATLAB工作空间中 命令格式与save相仿 但不能选择变量 例如loadtest 将test mat文件中的全部数据连同其变量名都下载到工作空间中 4 4数据接口 4 4 2数据输入load命令使用时的注意事项以二进制形式存储的文件 可直接使用load命令调用 以ASCII码形式存储的多个变量将会合成一个变量 成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康扶贫健康教育中的营养干预策略研究
- 2026河南农商银行系统校园招聘1736人备考题库含答案详解(b卷)
- 2026中国民生银行银川分行校园招聘备考题库及答案详解(新)
- 2025广东肇庆怀集县甘洒镇招聘镇派驻村党群服务中心工作人员1人备考题库含答案详解(能力提升)
- 2026恒丰银行西安分行招聘备考题库(3人)及参考答案详解一套
- 2025湖南省轨道勘察设计有限公司招聘8人备考考点题库及答案解析
- 荣县2025年度公开招聘社区专职工作人员的备考题库(8人)含答案详解ab卷
- 2025数字广东网络建设有限公司招聘4人备考考点题库及答案解析
- 2026秋季大连银行校园招聘备考题库附答案详解(夺分金卷)
- 健康促进中的肿瘤预防参与式策略-1
- 采购合同范本与风险控制要点
- 电驱系统团队介绍
- 2025年7月中央电大本科《知识产权法》期末考试试题及答案
- Unit 6 Plan for Yourself Section B 2a-2c 课件 2025-2026学年人教版八年级英语上册
- 2025年网约车平台合作协议(2025年)
- 2025年《毒理学》知识考试题库及答案解析
- 2025年中国水果产业发展研究报告
- 检验科临床实验室质控流程
- 肿瘤患者家属沟通技巧提升方案
- 扩展语段压缩语段课件
- 2025高三英语高考词汇必背3500词
评论
0/150
提交评论