您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 实验十M文件及函数文件
实验十M文件及函数文件一、实验目的1.学习M脚本文件和M函数文件的特征及创建方式2.学习子函数、匿名函数的定义及使用3.学习函数句柄的创建及使用二、实验原理1.M脚本文件在MATLAB的Desktop工作桌面上操作菜单File-New-MFile,即打开M文件编辑器,此时默认新建一个以Untitled开头的M脚本文件,编写文件内容(由一串按用户意图排列的MATLAB指令集合),保存时可重新设定文件名。脚本文件运行后,产生的指令驻留在MATLAB基本工作空间。2.函数文件如同一个“黑箱”,从外界只看到传给它的输入量和输出结果,内部运作藏而不见。函数文件与脚本文件创建方式类似,但函数文件的第一行总是以function引导的函数申明行,且函数名与文件名保持一致。函数文件运行时,MATLAB为其开辟专门的临时工作空间,称为函数工作空间。中间变了存放于函数工作空间。函数文件执行完后,函数工作空间及其中变了被清除。3.函数类别在MATLAB中函数可以分为主函数、子函数、嵌套函数、私用函数、匿名函数等,其中主函数、子函数和匿名函数最为常用。这三类函数的区别如下:主函数实质上就是函数文件中由第一个function引出的函数,函数名与函数文件名一致。在当前目录、搜索路径上会列出该函数所在的函数文件名。在指令窗或视野包含该函数文件的其他文件中可调用并执行该函数。采用helpfunctionname可获得该函数携带的帮助信息。子函数书写方式与主函数相同,但它必须是寄生在主函数中,在函数文件中由非第一个function引出,只能在其所在主函数及同一个函数文件中的其他子函数调用。主函数与子函数工作空间彼此独立。采用helpfunctionname/subfunctionname可获取自函数所带的帮助信息。匿名函数不以文件形式驻留在文件夹上,而是直接在指令窗或任何函数体内通过指令直接生成,适合于简单的函数。创建匿名函数的方法是:FH=@(arglist)expr这里arglist为匿名函数的输入量列表,expr为由输入量构成的函数表达式,FH为所创建的匿名函数的句柄。4.函数句柄函数句柄是MATLAB的一种重要的数据类型,它携带着“相应函数创建句柄时的路径、视野、函数名以及可能存在的重载方法”。引入函数句柄可以使函数调用更灵活、速度更快、效率更高。创建函数句柄的格式为:FH=@functionname调用函数句柄有两种格式,直接调用格式为FH(arglist),间接调用格式为feval(FH,arglist),其中arglist为函数functionname的输入参量。在创建函数句柄时,函数必须在“当前视野”中,即在当前目录下、help、lookfor、which等指令能发挥作用的范围,否则所创建的函数句柄无效。三、实验内容及步骤1.创建一个名为showfig的函数文件,该函数文件根据输入宗量不同情况显示出不同的图形。其中绘图部分由函数文件中定义的子函数figplot完成。具体要求为:没有输入量时,画出单位圆;输入量为大于2的自然数N时,绘制正N边形,图名反映多边形的边数;输入量是“非自然数”时,提示“输入输错,请出入一个自然数”。在命令窗口运行showfig函数,其中参量自行设定,给出运行结果。2.用指令fminbnd求)sin(cos)(xexyx在0x附近的最小值。要求分别写出fminbnd的第一个输入量使用字符串及匿名函数的的相关程序,观察两种方式所得结果是否一致。3.在matlab的\toolbox\matlab\elmat\private文件夹下有一个“烟圈矩阵”发生函数smoke.m。运行指令smoke(3,0),将生成一个三阶伪特征根矩阵:0000.100000.10000.18660.05000.0000000.18660.05000.0iiA当前目录为E:\班级,它与“烟圈矩阵”所在路径不同,请问如何利用函数句柄调用smoke.m函数,产生3阶伪特征根矩阵。写出相应的程序及操作步骤。
本文标题:实验十M文件及函数文件
链接地址:https://www.777doc.com/doc-2459574 .html