资源描述:
《第4章 Matlab编程基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章Matlab编程基础4.1M文件基础4.2变量和语句4.3程序调试4.4高级数据结构4.5程序设计注意事项习题4.1M文件基础4.1.1函数4.1.2脚本4.1.3伪代码M文件包括:函数(Functions)和脚本(Scripts)两种。M文件的查看,可通过type命令;M文件的打开,可通过【File】
2、【Open】菜单进入文件选择的目录界面;M文件的创建和编辑,可以在任意的文本编辑器中进行,但推荐和默认使用MATLAB自带的文本编辑器和Notebook;M文件的创建和编辑,可通过【File】
3、【New】
4、【M-File】菜单进入文本编
5、辑器界面。脚本与函数的区分脚本文件(Scripts)没有关键词不接收输入变量,不返回输出变量在工作空间上进行数据存储和操作文件名没有特殊限制函数文件(Functions)有关键词function接受输入变量,返回输出变量普通变量仅在本函数内部有效文件名与函数文件名要尽量相同44.1.1函数MATLAB中许多M文件格式的函数。函数被调用时,通过获取外部参数进行运算,并向外部返回运算结果;函数内部的变量都是隐含的,存放在函数本身的工作空间内;函数的例子-rankfunctionr=rank(A,tol)%RANKMatrixrank.%RANK(
6、A)providesanestimateofthenumberoflinearly%independentrowsorcolumnsofamatrixA.%RANK(A,tol)isthenumberofsingularvaluesofA%thatarelargerthantol.%RANK(A)usesthedefaulttol=max(size(A))*eps(norm(A)).%ClasssupportforinputA:%float:double,single%Copyright1984-2007TheMathWorks,Inc.%$
7、Revision:5.11.4.5$$Date:2007/08/0321:26:23$s=svd(A);ifnargin==1tol=max(size(A))*eps(max(s));endr=sum(s>tol);函数句柄函数句柄,可以理解成一个函数的代号,这样在调用时可以调用函数句柄而不用调用该函数。语法:变量名=@函数名;@的作用就是将一个函数的函数句柄赋值给等号左边的变量。在调用函数时就可以调用该句柄,实现调用函数的功能。匿名函数(AnonymousFunctions)匿名函数是函数句柄的一种特殊用法,函数句柄变量不指向特定的函数,
8、而是指向一个函数表达式。语法结构:f=@(arglist)expression例:>>sqr=@(x)x.^2;>>sqr(7)ans=49内联函数(InlineFunctions)内联函数跟匿名函数比较类似,可以通过一个函数表达式近而得到该函数。语法格式:1变量名=inline(‘函数表达式’);2变量名=inline(‘函数表达式’,‘变量名1’,‘变量名2’,...,‘变量名n’);例:>>f=inline('x+y');>>f=inline('x+y','x','y');>>f(3,5)>>f(3,5)ans=ans=88主函数与子
9、函数(PrimaryandSubfunctions)M文件可以包含多个函数,其中,只有一个是主函数,其他都是子函数。主函数和子函数必须在M文件内定义,主函数必须出现在最上方,也就是每个M文件的第1个文件为主函数,子函数位于主函数的后面,其个数不限,次序不限。主函数和各子函数的工作空间彼此独立。主函数的作用域大于子函数;主函数可以由M文件外(命令行和其它M文件)调用或执行,而子函数只能在本M文件内被调用。私有函数(PrivateFunctions)放在特定的子文件夹private中的函数。只对包含子文件夹private目录下的函数可见,只能
10、被这些函数调用。私有函数在子文件夹private父目录下不可见,因此,在不同目录下的子文件夹private中可以用相同的文件。31八月202111当M文件中需要调用某一个函数时,MATLAB按照以下顺序进行搜索:检查此函数是否是子函数;检查此函数是否为私有目录的函数;从所设定的搜寻路径搜索此函数。搜索过程中,只要找到与第一个文件名相符的函数就会立即取用而停止搜索。注意:嵌套函数(NestedFunctions)定义在函数内的函数。更容易共享数据,减少函数之间的参数传递。主调函数和被调函数结束时候必须都加end。例:functionyint=
11、intnest(a,b,c)yint=quad(@poly2,0,1);functiony=poly2(x)a,b,cy=a.*x.^2+b.*x+c;endend