matlab04 Matlab 编程2_1.ppt_第1页
matlab04 Matlab 编程2_1.ppt_第2页
matlab04 Matlab 编程2_1.ppt_第3页
matlab04 Matlab 编程2_1.ppt_第4页
matlab04 Matlab 编程2_1.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 Matlab编程 M文件介绍 用Matlab语言编写的程序 称为M文件 根据调用方式的不同 M文件可分为两类 1 脚本文件 Scripts 文本文件 可以直接在Matlab环境下运行 2 函数文件 Functions 提供Matlab的外部函数 供其它M文件调用 M文件以 m 为扩展名 可以用任何文本编辑器来建立或修改 最常用的是Matlab自带的编辑器 2 函数文件 如果M文件的第一行以function开头 则该M文件为函数文件 函数文件通常包括以下几部分 1 函数定义行 必须 2 H1行3 函数帮助文本4 函数体 必须 5 注释 3 例 functiony mean x MEANAverageormeanvalue Forvectors MEAN X isthemeanvalue oftheelementsinX Formatrices MEAN X isarowvectorcontaining themeanvalueofeachcolumn m n size x ifm 1m n endy sum x m 函数定义行 H1行 帮助文本 函数体 4 函数文件 1 函数定义行functiony mean x 其中function是定义函数的关键字 mean是函数名 y为输出变量 x是输入变量 当函数有多个输出变量时 可使用方括号 如 function x y z sphere rho phi theta 若没有输出变量 直接略去输出部分 或用空方括号 如 functionprintresult x 或function printresult x 注 函数名必须与文件名相同 如上面的函数文件名为mean m 5 函数文件 2 H1行M文件中以 开头的行为注释行 不被Matlab执行 函数文件的第二行一般为注释行 H1行不仅可以被help命令显示 而且 lookfor命令只在H1行内搜索 因此 H1行包含了该函数的重要信息 3 函数帮助文本这部分以 开头 详细介绍该函数的功能和使用方法 这部分内容可以用help命令显示 6 函数工作空间 每个函数被调用时都会建立自己独立的存储区域 称为函数工作空间 用于保存函数中使用的 局部 变量 函数调用结束后 该空间被释放 除了用global定义的变量外 函数中使用和生成的变量都是局部变量 这些变量的值只能通过输入和输出变量与其它M文件进行数据传递 7 函数文件 4 函数体函数的主体部分 可包括Matlab的任何命令或函数 以及用户自己编写的函数等 5 注释以 开头的行 可以加在函数的任何位置 也可以加在一个语句之后 以便对该行进行解释 主要增加函数的可读性 在函数文件中 除 函数定义行 和 函数体 外 其它部分都可以省略 但增加注释是个良好的编程习惯 8 9 Matlab自定义函数 Matlab自定义函数的五种方式 命令 函数文件 函数文件 多个M文件函数文件 子函数 一个M文件inline 命令 函数文件 无需M文件syms subs方式 无需M文件字符串 subs方式 无需M文件 10 Matlab自定义函数 方式 1 命令 函数文件 函数文件 命令 函数文件 myfile1 mfid fopen myfile1 txt w fort 1 10 y mylfg t fprintf fid 4d 1 3 6 4f n t y endfclose fid 函数文件 mylfg mfunctiony mylfg x y x 1 3 函数必须单独写一个文件 不能与命令文件放在同一个文件中 11 Matlab自定义函数 方式 2 函数文件 子函数 函数文件 funtry2 mfunction funtry2 fid fopen myfile2 txt w fort 1 100 y lfg1 t fprintf fid 4d 1 3 6 4f n t y endfclose fid functiony lfg1 x 子函数1y x 1 3 函数中可以定义一个或多个子函数 此时我们称该函数为主函数 子函数只能被该主函数调用或在同一个文件中的其它子函数调用 12 Matlab自定义函数 方式 3 inline 命令 函数文件 inline命令可以用来定义一个内联函数 格式 f inline 函数表达式 变量1 变量2 调用方式 f 数值列表 注 代入的数值列表顺序应与定义时的变量名顺序一致 例 13 Matlab自定义函数 方式 3续 inline 命令 函数文件 这种函数定义方式是将f作为一个内部函数调用 其特点是 调用方式最接近于我们平时对函数的定义 使程序更具可读性 同时由于它是基于MATLAB的数值计算内核的 所以它的运算速度很快 程序更有效率 14 Matlab自定义函数 方式 3续 inline 命令 函数文件 15 Matlab自定义函数 函数文件 function funtry3 lfg inline x 1 3 表达式两端的单引号不可缺少fid fopen myfile3 txt w fort 1 50 y lfg t fprintf fid 4d 1 3 6 4f n t y endfclose fid ezplot lfg 0 50 X 方式 3续 inline 命令 函数文件 16 y x 3 x 5 diff y ans symsx y x 3 x 5 diff y 17 Matlab自定义函数 注 由于在syms中已经定义过符号 在subs中x外的单引号可以省略 但如果在syms后又定义过x 数值 则必须subs f x x 否则不可替换 方式 4 syms subs syms定义一个符号表达式 用subs命令调用 格式 symsfx 定义符号f 1 1 x 2 定义符号表达式 调用 subs f x 代替x的数值或符号 18 Matlab自定义函数 这种方法的一个特色是可以用符号作为替换 例如 方式 4续 syms subs 当然它的缺点也是明显的 由于使用符号运算内核 其速度比不上直接的数值运算 19 Matlab自定义函数 注 此处x外的引号不可以去除 该方式可以代入字符 但字符不能参与运算 否则将自行转化成该字符的ASCII码运算 这与我们想象的结果大相径庭 方式 5 字符串 subs 直接定义一个字符串 用subs命令完成调用 这种方法的优点是占内存字节最小 定义格式方便自由 缺点是无法对字符进行符号转化 20 Matlab自定义函数 subs命令的一种比较方便的调用方法 当所要替代的符号在调用前都已经有了数值定义 则可以直接调用 subs f 例 关于subs的一个注解 21 22 作业 1 Fibonacci数列定义如下 f1 1f2 1fn fn 1 fn 2 n 2 求Fibonacci数列的前20项 并用plot函数绘制 并将前20项结果输出到文本文件中 23 2编写程序计算x属于 3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论