matlab ishandle,matlab函数句柄function_handle (@)

Handle used in calling functions indirectlyexpand all in

page

Syntaxhandle = @functionnamehandle =

@(arglist)anonymous_functionDescriptionhandle = @functionname

returns

a handle to the specified MATLAB® function.A function handle

is a MATLAB value that provides a means

of calling a function indirectly. You can pass function

handles in

calls to other functions (often called function

functions).

You can also store function handles in data structures for

later use

(for example, as Handle Graphics callbacks). A function handle

is

one of the standard MATLAB data types.At the time you create a

function handle, the function you specify

must be on the MATLAB path and in the current scope of the

code

creating the handle. For example, you can create a handle to a

local

function as long as you do so from within the file that

defines that

local function. This condition does not apply when you

evaluate the

function handle. You can, for example, execute a local

function from

a separate (out-of-scope) file using a function handle. This

requires

that the handle was created by the local function

(in-scope).handle = @(arglist)anonymous_function constructs

an anonymous function and

returns a handle to that function. The body of

the function, to the right of the parentheses, is a single

MATLAB statement

or command. arglist is a comma-separated list of

input arguments. Execute the function by calling it by means

of the

function handle, handle.ExamplesExample 1 — Constructing a

Handle to a Named FunctionThe following example creates a function

handle for the humps function

and assigns it to the variable fhandle.fhandle = @humps;Pass

the handle to another function in the same way you would

pass any argument. This example passes the function handle

just created

to fminbnd, which then minimizes over the interval [0.3,

1].x = fminbnd(fhandle, 0.3, 1)

x =

0.6370The fminbnd

function evaluates the @humps function

handle. A small portion of the fminbnd file is

shown below. In line 1, the funfcn input parameter

receives the function handle @humps that was passed

in. The statement, in line 113, evaluates the handle.1

function

[xf,fval,exitflag,output] = ...

fminbnd(funfcn,ax,bx,options,varargin)

.

.

.

113  fx = funfcn(x,varargin{:});Example 2 —

Constructing a Handle to an Anonymous FunctionThe statement below

creates an anonymous function that finds

the square of a number. When you call this function, MATLAB

assigns

the value you pass in to variable x, and then uses x in

the equation x.^2:sqr = @(x) x.^2;The @ operator constructs a

function handle

for this function, and assigns the handle to the output

variable sqr.

As with any function handle, you execute the function

associated with

it by specifying the variable that contains the handle,

followed by

a comma-separated argument list in parentheses. The syntax

isfhandle(arg1, arg2, ..., argN)To execute the sqr function defined

above,

typea = sqr(5)

a =

25Because sqr is a

function handle, you can

pass it in an argument list to other functions. The code shown

here

passes the sqr anonymous function to the MATLAB integral

function to compute its integral

from zero to one:integral(sqr, 0, 1)

ans =

0.3333Example 3 — Using

an Array of Function HandlesThis example creates a structure array

of function handles S and

then applies each handle in the array to the output of a

linspace calculation in one operation

using structfun:S.a = @sin;  S.b = @cos;

S.c = @tan;

structfun(@(x)x(linspace(1,4,3)), S, 'UniformOutput',

false)

ans =

a: [0.8415 0.5985

-0.7568]

b: [0.5403 -0.8011

-0.6536]

c: [1.5574 -0.7470

1.1578]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值