matlab3程序设计优质PPT.ppt

上传人:b****3 文档编号:15625512 上传时间:2022-11-08 格式:PPT 页数:83 大小:580KB
下载 相关 举报
matlab3程序设计优质PPT.ppt_第1页
第1页 / 共83页
matlab3程序设计优质PPT.ppt_第2页
第2页 / 共83页
matlab3程序设计优质PPT.ppt_第3页
第3页 / 共83页
matlab3程序设计优质PPT.ppt_第4页
第4页 / 共83页
matlab3程序设计优质PPT.ppt_第5页
第5页 / 共83页
点击查看更多>>
下载资源
资源描述

matlab3程序设计优质PPT.ppt

《matlab3程序设计优质PPT.ppt》由会员分享,可在线阅读,更多相关《matlab3程序设计优质PPT.ppt(83页珍藏版)》请在冰豆网上搜索。

matlab3程序设计优质PPT.ppt

使用函数名并给出相应的入口、出口参数即可。

例如:

sin.m函数用typesin查不到。

调用格式:

y=sin(2*x)实际应用中:

x=0:

2*pi/180:

2*pi;

y=sin(2*x)plot(x,y)(3).函数m文件需要输入变量,返回输出变量matlab用户可以根据需要编辑自己的m文件,它们可以像库函数一样方便的调用,从而极大地扩展了matlab的能力。

各种工具箱的内部函数基本都是M函数文件,用户也可以自己编写一组M函数文件组成工具箱对于某一类特殊问题,如创建了许多m函数文件,则可形成新的工具箱。

这种用matlab语言创建定义新的matlab函数的功能,正体现了matlab语言强大的扩展功能。

二、二、文本编辑窗文本编辑窗MATLAB文本编辑器的功能就是完成编写、修改和调试这种文件程序就要用到M文件编辑器/调试器。

文本编辑器/调试器的启动可以从命令窗口中或当前目录窗口中选择新建或打开文件按钮进入,或在命令窗口中键入:

edit(回车)。

其编辑模式如下图所示。

在文本编辑器中,文字的不同颜色显示表明文字的不同属性。

绿色:

注解;

黑色:

程序主体;

红色:

属性值的设定;

蓝色:

控制流程。

编辑功能与大多数编辑器类似,都有复制、粘贴、查找、加注释、缩进等功能具有程序调试功能:

设置断点、单步执行、连续执行等在运行程序之前,必须设置好MATLAB的工作路径,使得所要运行的程序及运行程序所需要的其他文件处在当前目录之下,只有这样,才可以使程序得以正常运行。

否则可能导致无法读取某些系统文件或数据,从而程序无法执行。

文本编辑器的相关菜单功能:

SaveandRun:

保存并运行程序,直到遇到下一个断点。

对应工具按钮为。

SingleStep:

单步执行。

StepIn:

运行当前程序行,如果当前行调用了另外一个函数,则跳转到这个函数里。

对应的工具按钮为。

ExitDebugMode:

退出调试模式。

工具按钮为。

Set/ClearBreakpoint:

设置/清除断点。

ClearAllBreakpoints:

清除所有的断点。

文本编辑器的参数设置文本编辑器的参数设置三、MATLBA程序的基本设计原则1、后面的内容是程序的注解,要善于运用注解使程序更具可读性。

2、养成在主程序开头用clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响。

但注意在子程序中不要用clear。

3、参数值要集中放在程序的开始部分,以便维护。

要充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。

4、input指令可以用来输入一些临时的数据;

而对于大量参数,则通过建立一个存储参数的子程序,在主程序中用子程序的名称来调用。

5、程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。

6、充分利用Debugger来进行程序的调试(设置断点、单步执行、连续执行),并利用其他工具箱或图形用户界面(GUI)的设计技巧,将设计结果集成到一起。

7、设置好MATLAB的工作路径,以便程序运行。

8、MATLAB程序的基本组成结构说明清除命令:

清除workspace中的变量和图形(clear,close)定义变量:

包括全局变量的声明及参数值的设定逐行执行命令:

指MATLAB提供的运算指令或工具箱提供的专用命令控制循环:

包含for,ifthen,switch,while等语句逐行执行命令绘图命令:

将运算结果绘制出来MM程序文件以.m格式进行存取,包含一连串的MATLAB指令和必要的注释。

M程序文件中的命令格式和前后位置,与在命令窗口中输入的没有任何区别。

需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。

程序运行时只需在工作空间中键入其名称即可。

使用helpxxx时将返回程序开始处的注释信息四、M程序文件命令文件包括两部分:

注释文件和程序文件%二阶系统时域响应曲线%阻尼系数为0.3x=0:

0.1:

20;

y=1-1/sqrt(1-0.32)*exp(-0.3*x).*sin(sqrt(1-0.32)*x+acos(0.3);

plot(x,y)程序部分画出分段函数所表示的曲面:

画出分段函数所表示的曲面:

%Thisisaexample.a=2;

b=2;

clf;

%CLFClearcurrentfigurex=-a:

0.2:

a;

y=-b:

b;

fori=1:

length(y)forj=1:

length(x)ifx(j)+y(i)1z(i,j)=0.5457*exp(-0.75*y(i)2-3.75*x(j)2-1.5*x(j);

elseifx(j)+y(i)a=1;

b=3;

c=1;

x1x2=FindRoots(a,b,c)functionx1x2=FindRoots(a,b,c)%a*x2+b*x+c=0x1=(-b+(b2-4*a*c)0.5)/(2*a);

x2=(-b-(b2-4*a*c)0.5)/(2*a);

q函数调用的一般格式输出实参列表=函数名(输入实参列表)u函数调用时,实参的顺序应与函数定义时的形参的顺序一致。

函数调用functiony=dfw1(r,p)函数定义形参z=dfw1(x,k)实参1、nargin函数体内获取实际输入变量的个数2、nargout函数体内获取实际输出变量的个数3、nargin(fun)函数体外获取定义输入变量数4、nargout(fun)函数体外获取实际输出变量数5、varargin获得输入变量的各元素内容6、varargout获得输出变量的各元素内容见文件mysum.mMATLAB在函数调用上有一个与众不同之处在函数调用上有一个与众不同之处:

函数:

函数所传递的参数具有可调性所传递的参数具有可调性。

函数文件函数文件examp.m:

functionfout=examp(a,b,c)ifnargin=1fout=a;

elseifnargin=2fout=a+b;

elseifnargin=3fout=(a*b*c)/2;

end程序文件程序文件mydemo.m:

x=1:

3;

y=1;

2;

examp(x)examp(x,y)examp(x,y,3)q函数通过输入和输出参数与其它M文件进行数据传递。

q当函数调用完毕后,该函数文件中定义的所有局部变量都将被释放,即全部被清除。

q函数文件中的变量都是局部的,即一个函数文件中定义的变量不能被另一个函数文件或其它M文件使用。

(2)局部变量q函数文件运行时,matlab会专门开辟一个临时工作区间,称为函数工作区间。

q如果在M函数中,调用某个M程序文件,那么该程序文件运行时产生的所有变量都存放于该函数空间中,而不是存放在Matlab空间。

变量名列表中的各个变量用空格隔开,不能用逗号!

全局变量给函数间的数据传递带来了方便,但却破坏了函数对变量的封装,降低了程序的可读性,因而在结构化程序设计中,全局变量是不受欢迎的。

特别是当程序较大,子程序较多时,全局变量将个程序调试和维护带来不便,故不提倡使用全局变量。

global变量名列表(3)全局变量q如果在若干个M文件中,都把某个变量定义为全局变量,则这些函数将公共使用这一变量。

所有函数都可以对它进行存取和修改操作。

globalabca=18.3036b=3816.44c=-46.13fori=1:

11t=373.2+10*(i-1)psat(i)=antoine(t)end%函數:

Antoine.mfunctionp_vap=antoine(t)globalabcp_vap=exp(a-b/(t+c)functionnum1,num2,num3=test3(varargin)globalfirstlevelsecondlevelnum1=0;

num2=0;

num3=0;

list=zeros(nargin);

narginlist(i)=sum(varargini(:

);

list(i)=list(i)/length(varargini);

iflist(i)firstlevelnum1=num1+1;

elseiflist(i)secondlevelnum2=num2+1;

elsenum3=num3+1;

endend?

globalfirstlevelsecondlevel?

firstlevel=85;

?

secondlevel=75;

a,b,c=test3(90,89,60,79,89,60,99,98,100)a=1b=2c=0(4)子函数u函数文件中可以含有一个或多个子函数u子函数由function语句引导u主函数必须位于最前面,子函数出现的次序任意u子函数只能被主函数和位于同一个函数文件中的其它子函数调用u除了用global定义的全局变量外,子函数中的变量都是局部变量,子函数与主函数及其它子函数之间通过输入、输出参数进行数据传递u主函数与子函数的工作空间相互独立u用help和lookfor命令不能提供子函数的帮助信息functiontest()%注释注释tt(0.3);

holdon;

tt(0.5);

tt(0.707);

functiony=tt(zeta)%二阶系统时域响应曲线二阶系统时域响应曲线%zeta阻尼系数阻尼系数x=0:

y=1-1/sqrt(1-zeta2)*exp(-zeta*x).*sin(sqrt(1-zeta2)*x+acos(zeta);

plot(x,y)functionavg,med=main_fun(x)%主函数主函数n=length(x);

avg=sub_fun1(x,n);

med=sub_fun2(x,n);

functiona=sub_fun1(x,n)%子函数子函数a=sum(x)/n;

functionm=sub_fun2(x,n)%子函数子函数x=sort(x);

ifrem(n,2)=1m=x(n+1)/2);

elsem=(x(n/2)+x(n/2+1)/2;

endMATLAB的搜索过程matlab在一个文件中碰到指令cow时:

(1)检查cow是否变量

(2)检查cow是否内建函数(3)检查cow是否子函数(4)检查cow是否私用函数(私用函数指位于private目录上的M文件函数。

私用函数只能被private目录的直接父目录上的M函数文件所调用)(5)检查cow是否当前目录上的文件(先找.p,再找.m)(6)检查搜索路径上是否有cow六、程序流程结构

(一)M-文件中输入、输出命令命令直接赋值输入:

提示对话输入(inp

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1