版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
函数类型
1234
2学习目标匿名函数主函数嵌套函数子函数5
私有函数6
重载函数
3注意:匿名函数的参数列表arglist中可以包含一个或多个参数,这样调用的时候就要按顺序给出这些参数的实际取值。但arglist也可以不包含参数,即留空。这种情况下调用函数时还需要通过fhandle()的形式来调用,即要在函数句柄后紧跟一个空的括号,否则将只显示fhandle句柄对应的函数形式。
4每一个函数M文件第一行定义的函数就是M文件的主函数,一个M文件只能包含一个主函数,习惯上将M文件名和M文件主函数名设为一致。
5在一个函数内部,可以定义一个或多个函数,这种定义在其他函数内部的函数称为嵌套函数。
6一个M文件只能包含一个主函数,但是一个M文件可以包含多个函数,这些编写在主函数后的函数统称为子函数。
7私有函数是具有限制性访问权限的函数,它们对应的M文件需要保存在名为private的文件夹下,这些私有函数代码编写上和普通的函数没有什么区别,也可以在一个M文件中编写一个主函数和多个子函数,以及嵌套函数。
8重载是计算机编程中非常重要的概念,它经常用在处理功能类似、但参数类型或个数不同的函数编写中。MATLAB中重载函数通常放置在不同的文件夹下,文件夹名称通常以符号@开头,然后跟一个代表MATLAB数据类型的字符,如@double目录下的重载函数输入参数应该是双精度浮点型,而@int32目录下的重载函数的输入参数应该是32位整型。感谢选用本书作为教材!★获取学习资源9函数文件
作者:刘浩1211学习目标函数文件结构函数调用
12MATLAB中写的程序都保存为M文件,M文件是统称,每个程序都有自己的M文件,文件的扩展名是.m。通过编写M文件,可以实现各种复杂的运算。
13(1)函数定义行函数定义行由关键字function引导,指明这是一个函数文件,并定义函数名、输入参数和输出参数,函数定义行必须为文件的第一个可执行语句,函数名与文件名相同,可以是MATLAB中任何合法的字符。(2)H1行H1行紧跟着函数定义行。因为它是help文本的第一个注释行,所以称其为H1行,用%开始。MATLAB可以通过命令(如lookfor)把M文件上的帮助信息显示在命令窗口中。(3)帮助文本帮助文本是为调用帮助命令而建立的文本,可以是连续多行的注释文本。可以在命令窗口中查看,但不会在MATLAB帮助浏览器中显示。
14(4)注释及函数体函数体包含了全部用于完成计算及为输出参数赋值等工作的语句,这些语句可以是调用函数、流程控制、交互式输入/输出、计算、赋值、注释和空行。
15(1)当调用一个函数时,输入和输出参数的顺序应与函数定义时的一致,其数目可以少于函数文件中所规定的输入和输出参数调用函数,但不能使用多于函数文件所规定的输入和输出参数数目。(2)在编写函数文件调用时常通过函数nargin()和nargout()设置默认输入参数,并决定用户希望的输出参数。函数nargin()可以检测函数被调用时用户指定的输入参数个数,函数nargout可以检测函数被调用时用户指定的输出参数个数。(3)当函数有一个以上输出参数时,输出参数包含在方括号内,如[m,n]=size(x)。注意:[m,n]在等号左边表示m和n为函数的两个输出参数,[m,n]在右边(如y=[m,n])则表示数组y由变量m和n所组成。(4)当函数有一个或多个输出参数,但调用时未指定输出参数,则不给输出变量赋任何值。
16(5)函数有自己的独立工作区,与MATLAB的工作区分开,除非使用全局变量。函数内变量与MATLAB其他工作区之间唯一的联系是函数的输入和输出参数。(6)在MATLAB其他工作区重新定义预定义的变量,该变量将不会延伸到函数的工作区;反之,在函数内重新定义的预定义变量也不会延伸到MATLAB的其他工作区中。(7)如果变量说明是全局的,则函数可以与其他函数、MATLAB命令工作区和递归调用本身共享变量。为了在函数内或MATLAB命令工作区中访问全局变量,全局变量在每一个所希望的工作区都必须说明。
17(8)全局变量可以为编程带来某些方便,但却破坏了函数对变量的封装,所以在实际编程中,无论什么时候都应尽量避免使用全局变量。如果一定要用全局变量,建议全局变量名要长、采用大写字母,并有选择地以首次出现的M文件的名字开头,使全局变量之间不必要的互作用减至最小。(9)MATLAB以搜寻脚本文件的同样方式搜寻函数文件。(10)从函数文件内可以调用脚本文件。(11)当函数文件到达文件终点,或者碰到返回命令return时,结束执行并返回。感谢选用本书作为教材!★获取学习资源18参数传递
作者:刘浩1234
20学习目标参数传递概述输入和输出参数的数目可变数目的参数传递返回被修改的输入参数5
全局变量
21MATLAB中参数传递过程是传值传递,也就是说,在函数调用过程,MATLAB将传入的实际变量值赋值为形式参数指定的变量名,这些变量都存储在函数的变量空间中,和工作区变量空间是独立的,每一个函数在调用中都有自己独立的函数空间。
22MATLAB的函数可以具有多个输入或输出参数。通常在调用时,需要给出和函数声明语句中一一对应的输入参数;而输出参数个数可以按参数列表对应指定,也可以不指定。不指定输出参数调用函数时,MATLAB默认把输出参数列表中的第一个参数的数值返回给工作区变量ans。MATLAB中可以通过nargin()和nargout()函数,确定函数调用时实际传递的输入和输出参数个数,结合条件分支语句,就可以处理函数调用中指定输入/输出参数数目不同的情况。
23函数nargin和nargout结合条件分支语句,可以处理可能具有不同数目的输入和输出参数的函数调用,但这要求对每一种输入参数数目和输出参数数目的结果分别进行代码编写。有些情况下,可能无法确定具体调用中传递的输入参数或输出参数的个数,即存在可变数目的传递参数。前文提到,MATLAB可通过函数varargin()和varargout()实现可变数目的参数传递,使用这两个函数对于处理具有复杂的输入/输出参数个数组合的情况也是便利的。函数varargin()和varargout()把实际的函数调用时的传递的参数值封装成一个元胞数组,因此,在函数实现部分的代码编写中,就要用访问元胞数组的方法访问封装在varargin和v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《用EXCEL创造价值》课件
- 《社会阅读领航》课件
- 高中化学必修一 2.5.1 原子核的组成 教学设计
- 《歌曲万物生》课件
- 小学五年级德育主题班会教学设计 文明礼仪伴我成长
- 初中八年级物理教学设计:第九章压强章末复习核心素养导向单元整体教学设计
- 小学五年级音乐《我是草原小骑手》主题演唱教学设计
- 高中地理选择性必修1 教学设计:洋流分布规律与默写小纸条构建策略
- 高三化学原电池与化学电源单元复习教学设计
- 初中九年级英语Unit 2 Section B 核心词汇深度教学设计
- 2026中国进出口银行招聘考试(专业知识)历年参考题库含答案详解
- 消防培训防盗、防火安全课件
- 2026中国母婴新零售全渠道融合与私域流量运营策略报告
- 中国医院质量安全管理第2-13部分:患者服务临床用血
- 2024-2025学年人教版物理八年级上册 期中考试物理试卷
- T-CBMF 96-2020 T-CCPA 20-2020 超高性能混凝土预混料
- 吊篮施工计算书和相关图纸
- 加油站现场安全重点检查指引
- CRRT并发症及防治护理课件
- JJG 905-2010刮板细度计
- JJF 1682-2017光栅式测微仪校准规范
评论
0/150
提交评论