MATLAB5程序设计演示课件文.pptVIP

  • 2
  • 0
  • 约2.94千字
  • 约 51页
  • 2018-02-28 发布于天津
  • 举报
第5章 MATLAB程序设计;3、 M脚本文件;4、 M函数文件;【例5.0】根据不同阻尼系数,编写M脚本文件和M函数文件分别绘制二阶系统的时域曲线。欠阻尼系统的时域输出y与x的关系为: ;5.2 程序流程控制;2、 while ... end循环结构 ;【例5.2】与【例5.1】相同,计算1+3+5...+99 的值。;3、 If…else…end条件转移结构 ;条件转移结构框图;【例5.3】用If结构执行二阶系统时域响应。根据阻尼系数0ζ1和ζ=1两种情况,得出不同的时域响应表达式:;【例5.5】用try... catch... end结构来进行矩阵相乘运算。 ;6、流程控制语句 ;(2) continue命令 continue命令用于结束本次for或while循环,只结束本次循环而继续进行下次循环。例 (3) return命令 return命令是终止当前命令的执行,并且立即返回到上一级调用函数或等待键盘输入命令,可以用来提前结束程序的运行。 (4) pause命令 pause命令用来使程序运行暂停,等待用户按任意键继续。 语法: pause %暂停 pause(n) %暂停n秒 (5) keyboard命令 keyboard命令用来使程序暂停运行,等待键盘命令,执行完自己的工作后,输入return语句,程序就继续运行。;(6) input命令 input命令用来提示用户应该从键盘输入数值、字符串和表达式,并接受该输入。 ;例5.6 求[100,200]之间第一个能被21整除的整数。 程序如下: for n=100:200 if rem(n,21)~=0 continue end break end n;5.2 循环结构与动画;二、以对象方式产生动画 ;;;5.3 函数调用和参数传递 ;【例5.11】将画二阶系统时域曲线的函数作为子函数,编写画多条曲线的程序。; 私有函数是指存放在private子目录中的M函数文件,具有以下性质: (1) 在private目录下的私有函数,只能被其父目录的M函数文件所调用,而不能被其它目录的函数调用,对其它目录的文件私有函数是不可见的,私有函数可以和其它目录下的函数重名; (2) 私有函数父目录的M脚本文件也不可调用私有函数; (3) 在函数调用搜索时,私有函数优先于其它MATLAB路径上的函数。 ;调用函数的搜索顺序;2、 局部变量和全局变量;【例5.12】在主函数和子函数中使用全局变量。;3、 函数调用;【例5.13】画二阶系统时域的函数,使用输入输出参数来实现参数传递。 ;4、函数参数的个数;【例5.14】计算两个数的和,根据输入的参数个数不同使用不同的运算表达式。 ;【例5.17】根据阻尼系数绘制不同二阶系统的时域响应,当欠阻尼时, 当临界阻尼时, 当过阻尼时, ;四、 M文件的调试;启动调试工具: m-文件编辑器中的Debug工具 设置断点监控 检查变量 继续调试;五、 M文件性能的优化和加速 ;1. 使用循环时提高速度的措施 2. 大型矩阵的预先定维 3. 优先考虑内在函数 4. 采用高效的算法 5. 尽量使用M函数文件代替M脚本文件 ;使用循环时提高速度的措施:;(三)测定程序执行时间和时间分配 —— 使用程序性能剖析窗口 ;例5.8 计算1到50000之间整数的正弦值;练习: 鸡兔同笼问题:鸡和兔子关在一个笼子里,已知共有36头,脚100个,求笼内关了多少只兔子和多少只鸡?;(四)内联函数;3. 使内联函数适用于数组运算 内联函数的输入变量不能是数组,但可以使用vectorize命令将内联函数适用于数组运算。 语法: vectorize(inline_fun) %使内联函数适用于数组运算 【例5.19续】使内联函数适用于数组运算。 ff=vectorize(f) %使内联函数f转换为适合数组运算 ff = Inline function: ff(x,z) = sin(x).*exp(-z.*x) x=0:0.1:20; y=ff(x,0.3); 4. 执行内联函数 内联函数还可以直接使用feval命令执行。 语法: [y1,y2,…]=feval(inline_fun,arg1,arg2…) 【例5.19续】执行内联函数。 x=0:0.1:20; z=0:0.05:10; y=feval(ff,x,z) ;(五)利用函数句柄执行函数;2. 使用函数句柄的优点 ;3. 用feval命令执行函数;【例5.21】将【例5.17】编写的绘制二阶系统时域响应曲线中的调用各子函数改为利用函数句柄实现。 function y=Ex0521(z1) % E

文档评论(0)

1亿VIP精品文档

相关文档