M文件及程序调试PPT文档格式.ppt
《M文件及程序调试PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《M文件及程序调试PPT文档格式.ppt(29页珍藏版)》请在冰豆网上搜索。
a=b;
b=c;
ab然后在然后在MATLAB的命令窗口中输入的命令窗口中输入exch,将会执行,将会执行该命令文件。
该命令文件。
程序程序2:
首先建立函数文件首先建立函数文件exch.m:
functiona,b=exch(a,b)c=a;
然后在然后在MATLAB的命令窗口调用该函数的命令窗口调用该函数文件:
文件:
x=1:
y=11,12,13,14;
x,y=exch(x,y)2.6.2M文件的建立与打开文件的建立与打开M文件是一个文本文件,它可以用任何编辑程序文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。
提供的文本编辑器。
1建立新的建立新的M文件文件为建立新的为建立新的M文件,启动文件,启动MATLAB文本编辑器有文本编辑器有3种方法:
种方法:
(1)菜单操作。
从菜单操作。
从MATLAB主窗口的主窗口的File菜单中菜单中选择选择New菜单项,再选择菜单项,再选择M-file命令,屏幕上将出命令,屏幕上将出现现MATLAB文本编辑器窗口。
文本编辑器窗口。
(2)命令操作。
在命令操作。
在MATLAB命令窗口输入命令命令窗口输入命令edit,启动,启动MATLAB文本编辑器后,输入文本编辑器后,输入M文件文件的内容并存盘。
的内容并存盘。
(3)命令按钮操作。
单击命令按钮操作。
单击MATLAB主窗口工具栏主窗口工具栏上的上的NewM-File命令按钮,启动命令按钮,启动MATLAB文本编文本编辑器后,输入辑器后,输入M文件的内容并存盘。
文件的内容并存盘。
2打开已有的打开已有的M文件文件打开已有的打开已有的M文件,也有文件,也有3种方法:
从MATLAB主窗口的主窗口的File菜菜单中选择单中选择Open命令,则屏幕出现命令,则屏幕出现Open对话对话框,在框,在Open对话框中选中所需打开的对话框中选中所需打开的M文文件。
在文档窗口可以对打开的件。
在文档窗口可以对打开的M文件进行编文件进行编辑修改,编辑完成后,将辑修改,编辑完成后,将M文件存盘。
文件存盘。
在MATLAB命令窗口输入命令窗口输入命令:
命令:
edit文件名,则打开指定的文件名,则打开指定的M文件。
单击MATLAB主窗口主窗口工具栏上的工具栏上的OpenFile命令按钮,再从弹出命令按钮,再从弹出的对话框中选择所需打开的的对话框中选择所需打开的M文件。
2.6.3主程序文件主程序文件一一般般是是由由用用户户为为解解决决特特定定问问题题,将将原原本本要要在在MATLAB命命令令窗窗口口中中直直接接输输入入的的语语句句,放放在在一一个个以以.m为为后后缀缀的的文件中而编写的程序文件中而编写的程序。
通常通常MATLAB主程序文件由两部分组成:
主程序文件由两部分组成:
(1)有关程序的功能、使用方法等内容的注释部分)有关程序的功能、使用方法等内容的注释部分
(2)程序的主体)程序的主体
(1)有关程序的功能、使用方法等内容的注释部分)有关程序的功能、使用方法等内容的注释部分主程序前面若干行通常是程序的注释,每行以主程序前面若干行通常是程序的注释,每行以“%”开始,注释是对程序用途的说明,也包括了开始,注释是对程序用途的说明,也包括了运行时对用户输入数据的要求,此部分内容在运行运行时对用户输入数据的要求,此部分内容在运行时不被执行。
时不被执行。
在命令窗口输入在命令窗口输入“help文件名文件名”指令时,屏幕指令时,屏幕上会将该文件中以上会将该文件中以“%”开头的最前面几行内容显开头的最前面几行内容显示出来,使用户知道如何使用。
示出来,使用户知道如何使用。
用用“type文件名文件名”则会显示则会显示M文件的全部内容。
文件的全部内容。
(2)程序的主体)程序的主体由若干条由若干条MATLAB函数命令组成,实现程序设函数命令组成,实现程序设计功能。
计功能。
通常用通常用clear、closeall等语句开始,清除工作等语句开始,清除工作空间中原有的变量和图形,以避免其他已执行程空间中原有的变量和图形,以避免其他已执行程序的残留数据对本程序的影响。
序的残留数据对本程序的影响。
如果文件中有全局变量,即子程序与主程序公如果文件中有全局变量,即子程序与主程序公用的变量,应在程序的起始部分注明。
格式为:
用的变量,应在程序的起始部分注明。
Global变量名变量名1变量名变量名2.注意:
程序中必须都用半角英文字母和符号。
注意:
主程序的运行主程序的运行:
在在MATLAB命命令令窗窗口口中中,直直接接输输入入程程序序文文件件名名,或或“run程程序序文文件件名名”,回回车车后后系系统统就就自自动动执执行行文文件中的程序。
件中的程序。
文件名不允许用汉字。
思考题思考题1:
求一元二次方程求一元二次方程ax2+bx+c=0的根。
的根。
程序如下:
a=input(a=?
);
b=input(b=?
c=input(c=?
d=b*b-4*a*c;
x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);
disp(x1=,num2str(x
(1),x2=,num2str(x
(2);
思考题思考题2:
将实验二的部分程序编写为将实验二的部分程序编写为M文件并运行。
文件并运行。
2.6.4函数文件函数文件1.函数文件的基本结构函数文件的基本结构函数文件由函数文件由function语句引导,其基本结构语句引导,其基本结构为:
为:
function输出形参表输出形参表=函数名函数名(输入形参表输入形参表)注释说明部分注释说明部分函数体语句函数体语句其中以其中以function开头的一行为引导行,表示该开头的一行为引导行,表示该M文件是一个函数文件。
函数名的命名规则文件是一个函数文件。
函数名的命名规则与变量名相同。
输入形参为函数的输入参与变量名相同。
输入形参为函数的输入参数,输出形参为函数的输出参数。
当输出数,输出形参为函数的输出参数。
当输出形参多于一个时,则应该用方括号括起来。
形参多于一个时,则应该用方括号括起来。
编写函数文件求半径为编写函数文件求半径为r的圆的面积和的圆的面积和周长。
周长。
函数文件如下:
functions,p=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圆半径圆半径%s圆面积圆面积%p圆周长圆周长%2006年年2月月30日编日编s=pi*r*r;
p=2*pi*r;
2.函数调用函数调用函数调用的一般格式是:
函数调用的一般格式是:
输出实参表输出实参表=函数名函数名(输入实参表输入实参表)要注意的是,函数调用时各实参出现要注意的是,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。
函的顺序、个数一致,否则会出错。
函数调用时,先将实参传递给相应的形数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行参,从而实现参数传递,然后再执行函数的功能。
函数的功能。
利用函数文件,实现直角坐标利用函数文件,实现直角坐标(x,y)与极坐标与极坐标(,)之间的转换。
之间的转换。
函数文件函数文件tran.m:
functionrho,theta=tran(x,y)rho=sqrt(x*x+y*y);
theta=atan(y/x);
用主程序文件用主程序文件main1.m调用函数文件调用函数文件tran.m:
x=input(Pleaseinputx=:
y=input(Pleaseinputy=:
rho,the=tran(x,y);
rhothe在在MATLAB中,函数可以嵌套调用,即一个函中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身。
一个函数可以调用别的函数,甚至调用它自身。
一个函数调用它自身称为函数的递归调用。
数调用它自身称为函数的递归调用。
利用函数的递归调用,求利用函数的递归调用,求n!
。
!
n!
本身就是以递归的形式定义的:
显然,求显然,求n!
需要求需要求(n-1)!
,这时可采用递归调用。
递归调用函数文件递归调用函数文件factor.m如下:
如下:
functionf=factor(n)ifn=1f=1;
elsef=factor(n-1)*n;
%递归调用求递归调用求(n-1)!
end3.函数参数的可调性函数参数的可调性在调用函数时,在调用函数时,MATLAB用两个永久用两个永久变量变量nargin和和nargout分别记录调用该分别记录调用该函数时的输入实参和输出实参的个数。
函数时的输入实参和输出实参的个数。
只要在函数文件中包含这两个变量,只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函时的输入输出参数个数,从而决定函数如何进行处理。
数如何进行处理。
nargin用法示例。
用法示例。
函数文件函数文件examp.m:
主程序文件主程序文件mydemo.m:
functionfout=examp(a,b,c)x=1:
3;
ifnargin=1y=1;
2;
fout=a;
examp(x)elseifnargin=2examp(x,y)fout=a+b;
examp(x,y,3)elseifnargin=3fout=(a*b*c)/2;
end4.全局变量与局部变量全局变量与局部变量例例:
全局变量应用示例。
先建立函数文件先建立函数文件wadd.m,该函数将输入的参数加,该函数将输入的参数加权相加。
权相加。
functionf=wadd(x,y)globalABf=A*x+B*y;
在命令窗口中输入:
globalABA=1;
B=2;
s=wadd(3,4)2.6.5程序调试程序调试1.程序调试概述程序调试概述一般来说,应用程序的错误有两类,一一般来说,应用程序的错误有两类,一类是语法错误,另一类是运行时的错误。
类是语法错误,另一类是运行时的错误。
语法错误包括词法或文法的错误,例如函语法错误包括词法或文法的错误,例如函数名的拼写错、表达式书写错等。
数名的拼写错、表达式书写错等。
程序运行时的错误是指程序的运行结果程序运行时的错误是指程序的运行结果有错误,这类错误也称为程序逻辑错误。
有错误,这类错误也称为程序逻辑错误。
由于在函数程序中出错停机时,其变量由于在函数程序中出错停机时,其变量不作保存。
不作保存。
2.MATLAB调试菜单调试菜单MATLAB的的M文件编辑器除了能编辑修改文件编辑器除了能编辑修改文件外,还能对程序进行调试。
通过调试文件外,还能对程序进行调试。
通过调试菜单,可以查看和修改函数工作空间中的菜单,可以查看和修改函数工作空间中的变量,从而准确地找到运行错误。
通过调变量,从而准确地找到运行错误。
通过