文章目录
MATLAB句柄
MATLAB平台对于函数调用分为直接调用和间接调用。直接调用即调用子函数。
子函数只能被与它所在M文件同名的主函数或者在M文件内的其他函数调用。一个文件只能有一个主函数。
使用函数句柄可以避免上述问题。句柄提供一种间接调用函数的的方法,创建句柄使用操作符‘@’。对于MATLAB函数库提供的M文件中函数或者自己创建的程序的内部函数都可以创建句柄。
Function_Handle = @Function_Name;
上述代码中的参数意义如下:
Function_Name | 函数对应的M文件名称或者MATLAB内部函数名称eg:sin |
---|---|
@ | 句柄创建操作符 |
Function_Handle | 被创建的句柄变量。后续运算中作为数据流传递 |
Eg:Function_Handle = @sin;
Function_Handle(0)等于输入了sin(0)返回值为0
函数句柄的简单操作函数
函数名 | 功能 |
---|---|
functions(funhandle) | 返回一个结构体;PS:存储函数名称、类型、M文件位置 |
func2str(funhandle) | 将句柄转为函数名的字符串:“funhandle” |
str2func(str) | 将字符串代表的函数转换为句柄 |
save filename.mat funhandle | 将函数句柄保存在filename.mat文件中 |
load filename.mat funhandle | 从filename.mat文件中加载存储的句柄到工作区 |
isa(var,‘function_handle’) | 判断变量var是否是一个函数句柄 |
isequal(funhandleA,funhandeB) | 判断两个句柄是否对应同一个函数(非:0 真:1) |