《matlab的程序设计》PPT课件.ppt

上传人:san****019 文档编号:17287018 上传时间:2020-11-17 格式:PPT 页数:45 大小:244.60KB
返回 下载 相关 举报
《matlab的程序设计》PPT课件.ppt_第1页
第1页 / 共45页
《matlab的程序设计》PPT课件.ppt_第2页
第2页 / 共45页
《matlab的程序设计》PPT课件.ppt_第3页
第3页 / 共45页
点击查看更多>>
资源描述
第七节 matlab的程序设计 matlab语言称为第四 代编程语言,程序简洁、可 读性很强而且调试十分容易。 是 matlab重要组成部分。 m文件简介 用户如想灵活应用 matlab去解决实际问题, 充分调用 matlab的科学技术资源,就需要编 辑 m文件 包含 matlab语言代码的文件称为 m文件,其 扩展名为 m。 编辑 m文件可使用各种文本编辑器。 一、 matlab的工作模式 指令驱动模式 通常 matlab以指令驱动模式工作,即在 matlab 窗口下当用户输入单行指令时, matlab 立即处理这条指令,并显示结果,这就是 matlab命令行方式。 命令行操作时, matlab窗口只允许一次执行 一行上的一个或几个语句。 例如: x1=0:10 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2=0:3:11 x2 = 0 3 6 9 x3=11.5:-3:0 x3 = 11.5000 8.5000 5.5000 2.5000 x1=0:10,x2=0:3:11,x3=11.5:-3:0 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2 = 0 3 6 9 x3 = 11.5000 8.5000 5.5000 2.5000 在 matlab窗口输入数据和命令进行计算时, 当处理复杂问题和大量数据时是不方便的。 因此应编辑 m文件。 命令行方式程序可读性差,而且不能存储, 对于复杂的问题,应编写成能存储的程序文 件。 m文件模式 将 matlab语句构成的程序存储成以 m为扩展名 的文件,然后再执行该程序文件,这种工作 模式称为程序文件模式。 程序文件不能在指令窗口下建立,因为指令 窗口只允许一次执行一行上的一个或几个语 句。 二、 m文件的创建 m文件的类型是普通的文本文件,我们可以 使用系统认可的文本文件编辑器来建立 m文件。 如 dos下的 edit, windows的记事本和 word等。 具体的创建方法: 1. 在 matlab命令窗 口点击 file 菜单 new m-file 2. 点击 file Save Workspace As 将工作空间中的内容存入文件。 3. !edit 用 dos 下 edit 编辑器编制 m文件。 4. edit 用 matlab自带的编辑器编制 m文件。 5. word 用 word编辑 m文件。 m文件编辑器的设定 m文件编辑器可自己设定,设定方法是 matlab 命令窗口 options 菜单下点击 Edit Preference 选定 m文件编辑器。 m文件编辑器缺省设置是 c:windowsnotepad.exe 还可设成: c:windowswrite.exe c: c:program fileofficewinword.exe 注意:所创建的 m文件必须纳入 matlab搜索路 径后,才能在 matlab命令窗口运行。 matlab搜索路径的设置 matlab 缺省路径是 c:matlabbin 1. cd c:myfile 2. path(path,c:myfile) 3. 打开 matlabrc.m文件,将 c:myfile加上即可。 4. 用 pathtool路径浏览器设定当前目录。 三、 matlab文件的类型 1. 数据文件 .mat mat文件是 matlab以标准二进制格式保存的 数据文件,可将工作空间中有用的数据变量 保存下来。 mat文件的生成和调用是由函数 save和 load 完成的。 例如: load gatlin image(X) colormap(gray); axis equal; axis(off) 100 200 300 400 500 600 50 100 150 200 250 300 350 400 450 2. m文件 m文件的语法类似于 c语言,但又有其自身特 点。它只是一个简单的 ASCII码文本文件,执 行程序时逐行解释运行程序, matlab是解释性 的编程语言。 m文件有两类 独立的 m文件 称命令文件 可调用 m文件 称函数文件 (1). 命令文件 简单的 m文件 命令文件实际上是一串指令的集合,与在命 令窗口逐行执行文件中的所有指令,其结果是 一样的。没有输入输出参数。 命令文件包括两部分:注释文件和程序文件 %RANK Number of linearly independent rows or columns. % K = RANK(X) is the number of singular values of X % that are larger than MAX(SIZE(X) * NORM(X) * EPS. % K = RANK(X,tol) is the number of singular values of X that % are larger than tol. % Copyright (c) 1984-94 by The MathWorks, Inc. s = svd(x); if (nargin = 1) tol = max(size(x) * max(s) * eps; end r = sum(s tol); 程序部分 (2).matlab内置函数文件 matlab自定义的函数文件称内置函数文件 调用内置函数的方法: 使用函数名并给出相 应的入口、出口参数即可。 例如: sin.m函数 用 type sin查不到。 调用格式: y=sin(2*x) 实际应用中: x=0:2*pi/180:2*pi; y=sin(2*x) plot(x,y) 0 1 2 3 4 5 6 7 -1 - 0 . 8 - 0 . 6 - 0 . 4 - 0 . 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 又如 sqrt(x) 求 x的平方根 abs(x) 求 x的绝对值 det(a) 求行列式的值 等等。 matlab拥有大量的内置数学函数,供我们在数 值运算和符号运算中调用。 (3). 函数 m文件 需要输入变量,返回输出变量 matlab用户可以根据需要编辑自己的 m文件,它们可 以像库函数一样方便的调用,从而极大地扩展了 matlab 的能力。 对于某一类特殊问题,如创建了许多 m函数 文件,则可形成新的工具箱。 这种用 matlab语言创建定义新的 matlab函数的 功能,正体现了 matlab语言强大的扩展功能。 函数 m文件的格式: function 返回变量 =函数名(输入变量) 注释说明语句段 程序语句段 特定规则: 1. 函数 m文件第一行必须以单词 function作为引导词, 必须遵循如下形式: function =() 2. m文件的文件名必须是 .m。 3. 程序中的变量均为局部变量,不保存在工作空间中。 其变量只在函数运行期间有效。 (4). 系统文件 s函数 用于描述系统运动的专用函数,是特殊的 m 文件。 s 函数有 3类: 由 simulink结构图自动创建 可用 c语言程序设计 mex文件直 接定义 用函数 m文件编写 s函数一旦创建,即可在框图中使用,也可在 文件中调用。 S函数的调用格式 sys, x0=sfunction( t, x, u, flag) S函数与函数 m文件类似,只是输入、输出 变量是限定的。 系统状态 状态初值 用户定义的系统 当前时刻 当前状态值 当前输入值 标志量 (4). 函数句柄 函数句柄是 matlab6特有的语言结构,其优点: 方便地实现函数间互相调用 兼容函数加载的所有方式 拓宽子函数包括局部函数的使用范围 提高函数调用的可靠性 减少程序设计中的冗余 提高重复执行的效率 数组、结构数组、细胞型数组结合定义数据 函数句柄的创建和显示 定义函数句柄的定义只需在提示符 后添加相应 函数的函数名 f_h=plot f_h = plot 函数句柄的内容通过 functions显示 functions(f_h) ans = function: plot type: overloaded file: MATLAB built-in function methods: 1x1 struct matlab的函数类型 simple 未加载的内部函数、 m文件 overloaded 加载的内部函数、 m文件 subfunction 子函数 constructor matlab类的创建函数 private 局部函数 函数句柄的调用和操作 可通过函数 feval进行函数句柄的调用 feval(函数句柄) f_h1=peaks feval(f_h1) feval(函数句柄,参数列表) f_h=plot feval(f_h,0:10,0:10) 函数句柄与函数名字符串转换 func2str 函数名字符串转换函数句柄 funh=str2func(det) funh = det str2func 函数句柄转换函数名字符串 func2str(funh) ans = det 四、 matlab的程序结构 matlab语言的程序结构与其它高级语言是一致 的,分为顺序结构,循环结构,分支结构。 (1).顺序结构 依次顺序执行程序的各条语句 (2).循环结构 被重复执行的一组语句,循环 是计算机解决问题的主要手段。 循环语句主要有: for end 语法为: for i = 表达式 (表达式为一个向量) 可执行语句 end 例:利用 for循环求 1! +2! +3! + +5!的值 sum=0; for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr; end sum = 153 while end 循环 while循环将循环体中的语句循环执行不定 次数。 语法为: while 表达式 循环体语句 end 表达式一般是由逻辑运算和关系运算以及一 般运算组成的,以判断循环的进行和停止; 只要表达式的值 非 0,继续循环;直到表达式 值为 0,循环停止。 例:用 while循环求 1100间整数的和 sum=0; i=1; while i, ,=, = =, = 等 逻辑操作符 &, | , 等 逻辑函数: isequal 若是相等则为真 isempty 若是空矩阵则为真 isstr 若是字符串则为真 例:编写 m函数,计算函数值 x (x1) 2x-1 (1x=10) 五、 matlab程序流的控制 matlab的控制语句同 c语言有相似之处 , 但没有 c 语言复杂、灵活和多变。因而语法比较简单, 容易掌握。 echo 指令 用来控制 m文件在执行过程中是否 显示 echo on 打开所有命令文件的显示方式 echo off 关闭所有命令文件的显示方式 echo 在以上两者间切换 echo对于命令文件函数文件有所不同,命令文 件用法简单,函数对所有命令起作用;函数文 件用法较复杂,具体请 help查询。 echo file on 打开 file函数文件的显示方式 echo file off 关闭 file函数文件的显示方式 echo file 切换 file函数文件的显示方式 echo on all 打开所有函数文件的显示方式 echo off all 关闭所有函数文件的显示方式 input 提示用户从键盘输入数值、字符串、 表达式。 例: n=input(How many apples= ) How many apples= 5 n = 5 pause 暂停,等待用户响应 可令 m文件执行暂停,并在继续执行前按任一 个键 。 keyboard 与 input类似,功能更强 keyboard 调用键盘与调用 m文件一样,当 keyboard在 m文件中出现时,它停止文件的执行 并控制键盘,用于修改程序。 break 中断 break 中断 for, while循环语句的执行,在嵌套 循环结构中, break进从最里层循环推出。 menu 产生一个拥护可选择输入的菜单 格式: k=menu( 标题,菜单 1,菜单 2 ) 六、文件操作 matlab文件输入、输出( I/O)函数允许把其它 格式的数据文件直接读进 matlab,它是以 c语 言文件 I/O函数为基础的。 1. 打开和关闭文件( fopen, fclose) 格式: fid=fopen(数据文件, r) r 读 w 写 a 附加 rt 读写 文件一旦打开,即可进行读写操作。 sta=fclose(fid) 关闭上述打开文件 sta=fclose(all) 关闭所有打开的文件 与 save,load类似,是 matlab专用数据文件读写工 具( *.mat)。 2. 读写二进制数据文件 fread, fwrite 可读写数据文件,文本文件。 例: fid=fopen(user.dat,r) a=fread(fid,50) sta=fclose(fid) 七、应用程序接口 应用程序接口 是 matlaab的附加组件。是一个 由相关函数组成的接口函数库,可实现与外部程 序的交互。 MEX文件:是 matlab环境下调用 C、 FORTRAN 语言编写的应用程序模块。 matlab 计算引擎:在使用 C、 FORTRAN编程时 可调用 matlab函数库进行计算。 MAT文件:实现 matlab与 C、 FORTRAN语言程序间的 数据交换 八、 matlab编译 matlab编译的原因: 1. 提高运算速度 2. 隐藏特定算法 3. 可产生独立的 m文件 matlab编译函数: mcc MCC -options fun fun2 . mexfile1 . mlibfile1 . 小 结 本节主要介绍了 matlab语言程序设 计基础。 matlab 编程简单,容易掌 握。 通过学习, 应能编写简单程序 结 束 语 本课程基于 matlab语言基础,望大家 以后进一步学习,方能编写出高质量 m文件,以适应高科技的需要。 望你们今后能成为 matlab高手。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!