子函数
在Matlab中,可以把多个函数的定义放在一个函数文件中,这些函数中,第一个出现的为主函数,其他的函数均为子函数,需要注意的是,子函数只能被同一个函数文件中的函数调用。在保存函数文件的时候,函数文件名一般保持和主函数名相同,且外部程序只能对主函数进行调用。下面距离说明。
function d=add2(a,b,c)
% d=a*b+c
d=mult2(a,b)+c;
end
function c=mult2(a,b)
c=a*b;
end
运行结果如下
>> add2(3,4,5)
ans =
17
内联函数
使用字符串形式存在的函数表达式可以通过inline函数转化为内联函数,例如
a='(x+y)^2'
可以通过
f=inline(a)
转换为f(x,y)=(x+y)^2
执行如下
>> a='(x+y)^2';
>> f=inline(a)
f =
内联函数:
f(x,y) = (x+y)^2
>> f(3,4)
ans =
49
匿名函数
匿名函数的格式:函数句柄变量=@(匿名函数输入参数) 匿名函数表达式,其中,函数句柄变量相当于函数的别名,利用它可以间接调用函数,@是创建函数句柄的运算符,@后面定义了一个匿名函数,包括函数输入参数和函数表达式。举例如下:
>> sqr=@(x) x.^2
sqr =
包含以下值的 function_handle:
@(x)x.^2
>> sqr([1,2,3])
ans =
1 4 9
匿名函数的执行效率要比内联函数高,所以建议使用匿名函数,并且在后续的matlab版本中,内联函数将会被删除。