预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共47页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章MATLAB程序设计M-FileProgramming5.1M文件 5.2程序流程控制 5.3函数调用和参数传递 5.4M文件性能的优化和加速 5.5内联函数 5.7利用函数句柄执行函数5.1M文件(ScriptsandFunctions)5.1.1M文本编辑器(M-FileEditor)函数声明行 H1行(用%开头的注释行) 在线帮助文本(用%开头) 编写和修改记录(用%开头) 函数体(1)函数声明行以“function”引导,是M函数文件必须有的; 函数声明行的格式: function[输出变量列表]=函数名(输入变量列表) (2)H1行通常包含大写的函数文件名,可以提供给help和lookfor关键词查询使用; (3)在线帮助文本通常包含函数输入输出变量的含义、格式说明; (4)编写和修改记录一般在空一行后,记录作者、日期和版本记录,用于软件档案管理。 (5)函数体由MATLAB的命令或者通过流程控制结构组织的命令组成。通过函数体实现函数的功能。函数文件的特点: (1)第一行总是以“function”引导的函数声明行; function[输出变量列表]=函数名(输入变量列表) (2)函数文件在运行过程中产生的变量都存放在函数本身的工作空间;函数的工作空间随具体的M函数文件调用而产生,随调用结束而删除, (3)当文件执行完最后一条命令或遇到“return”命令时,就结束函数文件的运行,同时函数工作空间的变量就被清除; (4)在函数文件中需要将输出变量列表赋值。 5.2程序流程控制5.2.1for...end循环结构5.2.2while...end循环结构5.2.3If…else…end条件转移结构5.2.4switch…case开关结构5.2.5try...catch...End试探结构(TrappingErrors)5.2.6流程控制语句5.2.7循环结构与动画【例5.10续】使用电影方式制作动画,显示二阶系统的时域波形。 >>n=20; >>fori=1:n x=0:0.1:i; y=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3)); plot(x,y) axis([0,20,0,1.5]); %固定坐标轴 M(i)=getframe; %抓取画面 end >>movie(M,3) 【例5.10续】使用电影方式制作动画,显示二阶系统的时域波形。 x=0:0.1:20; y=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3)); plot(x,y) h=line(0,0,'color','red','marker','.','markersize',40,'erasemode','xor'); %定义红色的小球 fori=1:length(x) set(h,'xdata',x(i),'ydata',y(i)); pause(0.005) %暂停0.005秒 drawnow %刷新屏幕 end 5.3函数调用和参数传递5.3.1子函数和私有函数【例5.11】画二阶系统时域曲线的函数作为子函数,编写画多条曲线的程序。附录F程序的调试(Debug)5.3.2局部变量和全局变量5.3.3函数的参数(FunctionArguments)2.函数参数的个数 (1)nargin和nargout变量 函数的输入输出参数的个数可以通过变量nargin和nargout获得。 nargin用于获得输入参数的个数,nargout用于获得输出参数的个数。 (2)varargin和varargout变量 “varargin”和“varargout”可以获得输入输出变量的各元素内容,varargin和varargout都是元胞数组。5.3.4程序举例(Examples)5.4M文件性能的优化和加速5.4.1P码文件5.4.3程序性能剖析窗口5.5内联函数5.6利用函数句柄执行函数5.6.1函数句柄的创建5.6.2用feval命令执行函数5.7利用泛函命令进行数值分析5.7.1求极小值5.7.2求过零点5.7.3数值积分5.7.4微分方程的数值解练习:练习: