Matlab(14)——函数
文章目录
一、函数文件的基本结构
function [输出形参表]=函数名(输入形参表)
%注释
函数体
end
——当输出形参数量为1时可以省略"[ ]"
——函数文件名通常为函数名+".m",当函数文件名与函数名不同时,调用这个函数时应该以函数文件名为准(不用".m")
——return只表示结束这个函数,不能用来返回一个返回值
二、函数的调用
[输出实参表]=函数名(输入实参表)
三、匿名函数
除了在函数文件中定义函数,也可以在命令行窗口定义匿名函数
1.给函数表达式定义函数句柄
定义格式
函数句柄变量=@(输入参数)匿名函数表达式
——@:函数句柄运算符
例:
2.给已定义的函数定义函数句柄
定义格式:
函数句柄变量=@函数名
——函数名可以为自定义函数也可以为库函数
四、函数参数的可调(tiao)性
在调用函数时,Matlab中有两个预定义变量:
nargin:记录在调用这个函数时输入实参的个数
nargout:记录在调用这个函数时输出实参的个数
——输入实参给输入形参赋值为从左到右
例:
五、局部变量、全局变量与静态变量
1.局部变量
作用域有限,只能在某些特定情况下访问
例如:函数体中定义的变量
2.全局变量
全局变量的作用域为整个工作空间
定义格式:
global 变量名1 变量名2...
——若要一次定义多个全局变量只用以空格间隔各个变量名
——在定义全局变量时不能赋值,定义之后才可以,只定义时为空
——要在每个使用全局变量的不同作用域(脚本,函数,命令行窗口)重复用global声明这个全局变量
3.静态变量
函数体中的定义的变量都是局部变量,函数调用完毕时,这些局部变量消亡,若希望这些局部变量在函数调用完毕后任然保留它的生命期,我们可以将它声明为静态变量
persistent 变量名1 变量名2...
——若要一次定义多个全局变量只用以空格间隔各个变量名
——在定义全局变量时不能赋值,定义之后才可以,只定义时为空
——它的作用域只为声明它的那个函数的函数体
——改该关键字值允许在函数中使用
isempty(x):用来判断x是否赋值,若x为空则返回逻辑值 1 (true),否则返回逻辑值 0 (false)