MATLAB特殊形式的函数
目录
除了通过函数文件定义一个函数,MATLAB还可以使用子函数,内联函数和匿名(句柄)函数定义函数。
1.子函数
在MATLAB函数定义中,如果函数较长,那么自然的我们希望将多个函数分别写在不同的函数文件中;有时候函数可能较短,那么我们又希望将多个函数定义放在同一个函数文件中。
在MATLAB中,可以在一个函数文件中同时定义多个函数,其中函数文件中出现的第一个函数称为主函数(Primary Function),其他函数称为子函数(Subfunction)。
但需要注意的是子函数只能由同一个函数文件中的函数调用,在保存函数文件时,函数文件名一般与主函数名相同,外部程序只能对主函数进行调用。
例:编写程序表示运算x*y+z,
程序如下:建立func.m文件
function d=func(a,b,c) %主函数
d=subfunc(a,b)+c;
function c=subfunc(a,b) %子函数,此c非彼c,这里的c是形式输出变量
c=a*b;
运行如下:
>> func(3,4,5)
ans =
17
我们可以用子函数拆分表示更多更加复杂的函数,这能很大程度提高了我们的效率。我们在这指出:同一个函数文件中主函数和子函数的工作区是彼此独立的,各个函数间的信息传递可以通过输入输出参数、全局变量来实现。
2.内联函数
以字符串形式存在的函数表达式可以通过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(4,5)
ans =
81
3.匿名函数
匿名函数的基本格式如下:
函数句柄变量=@(匿名函数输入参数) 匿名函数表达式
这里,函数句柄变量相当于函数的别名,利用它可以间接调用函数;“@”是创建函数句柄的运算符;”@“后面定义一个匿名函数,包括函数输入参数和函数表达式;
>> sqr=@(x) x.^2
sqr =
@(x)x.^2
>> sqr([2,3,4])
ans =
4 9 16
当函数有多个输入参数时,参数间用逗号分隔。
>> f=@(x,y) x^2+y^2;
>> f(4,5)
ans =
41
也可以通过函数句柄调用已经定义的函数
函数句柄变量=@函数名
例1
>> k=@func
k =
@func
>> k(1,2,3)
ans =
5
例2
>> h=@sin %取正弦函数句柄
h =
@sin
>> h(pi)
ans =
1.2246e-16
>> h(pi/2) %通过函数句柄变量h调用正弦函数
ans =
1
分类:
MATLAB学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)