3.2 M函数
如果M文件的第一个可执行语句以function开始,该文件就是函数文件.
3.2.1 M函数的格式
函数定义行:函数定义行由关键字function引导,指明这是一个函数文件,并定义函数名、输入参数和输出参数,函数定义行必须为文件的第一个可执行语句.
例如:function[x,y,z]=sphere(theta,phi,rho).这里:sphere为函数名,函数调用需要传送3个参数,函数返回一个具有3个元素的向量.
说明1: M函数必须有一个对函数赋值的语句,上例:[x,y,z]=×××;
说明2: 从使用的角度看,函数是一个“黑箱”,把一些数据送进去,经加工处理,把结果送出来.从形式上看,函数文件区别于脚本文件之处在于脚本文件的变量为命令工作空间变量,在文件执行完成后保留在命令工作空间中;而函数文件内定义的变量为局部变量,只在函数文件内部起作用,当函数文件执行完后,这些内部变量将被清除;
说明3: M函数的建立方法同M文件;
说明4: 一般,函数名与文件名相同,可以是MATLAB中任何合法的字符.
【例2】 编写函数average_2()用于计算向量元素的平均值.
function y=average_2(x)
[m,n]=size(x);%判断输入量的大小
if~((m==1)|(n==1))|((m==1)&(n==1))%判断输入是否为向量
error(′必须输入向量.′)
end
y=sum(x)/length(x)%计算向量x所有元素的平均值,这里y是函数的返回值,调用者须用:z=average_2(x)的方式将函数的返回值保存到z中
3.2.2 M函数的调用
调用函数文件的一般格式为:[输出参数表]=函数名(输入参数表)
调用函数时应注意:
(1)当调用一个函数时,输入和输出参数的顺序应与函数定义时的一致,其数目可以按少于函数文件中所规定的输入和输出参数调用函数,但不能使用多于函数文件所规定的输入和输出参数数目.
(2)当函数有一个以上输出参数时,输出参数包含在方括号内.例如,[m,n]=size(x).这里,[m,n]表示函数的两个输出参数m和n.