MATLAB的函数句柄

在MATLAB中,函数调用分为直接调用与间接调用

一、直接调用

       被调用的函数通常被称为子函数,子函数只能与M文件同名的主函数或被M文件中的其他函数调用,同时在一个文件中只能有一个主函数。

二、间接调用

        1、函数句柄提供了一种间接调用的方法,避免了直接调用函数的缺陷。对MATLAB库函数中提供的各种M文件中的函数和用户自己编写的程序中的内部函数都可以通过创建函数句柄实现这些函数的间接调用。创建函数句柄需要使用操作符@。

       2、函数句柄的创建与调用

 

       (1)无输入参数的函数

F_Hundle=@sin

创建了一个函数句柄,其中sin函数MATLAB内部函数的名称;@是创建函数句柄的操作符;F_Hundle是变量,用于保存这一函数句柄。

例如在MATLAB R2016a中命令行中输入

F1=@sin

输出结果为:

F1=
   @sin

用F1可实现对sin 函数的调用,例如下图

      (2)有输入参数的函数

例如在命令行中输入如下代码(此处F1用于调用上述sin函数):

>> Fd(x,y)
>> m=0.05*pi:1/1000*pi:2*pi;
>> n=F1(m);
>> Fd=@plot;
>> Fd(m,n)

运行结果如下:

        (3)句柄操作函数

 

函数句柄的操作函数
函数名称 
functions(funhandle)返回一个结构体,该结构体存储函数的名称、类型(simple或overload),以及函数M文件的位置
func2str(funhandle)将函数句柄转换为函数名称字符串
str2func(str)将字符串代表的函数转换为函数句柄
save filename.mat funhandle将函数句柄 保存在*.mat文件中
load filename.mat funhandle把*.mat文件中存储的函数句柄加载到工作区
isa(var, 'function_handle')判断变量var是否是函数句柄
isequal(funhandlea, funhandleb)判断两个函数句柄是否对应于同一个函数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值