syntax of handle: f = @(X)find(X);

6 views (last 30 days)
Yuji Zhang on 24 Apr 2013
Hi everyone~
I'm learning about use handle. The usual syntax is h = @FuncName
But I also saw an example of f = @(X)find(X)
from here:
Can anyone please explain what the difference is? Can we use f = @find instead?
Thank you~

Wayne King on 24 Apr 2013
Edited: Wayne King on 24 Apr 2013
Yes, you can use
f = @find
instead in this case. For example:
y = zeros(10,1);
y(3:end) = 3:10;
f(y)
The way the example defines it gives you more flexibility in using find() for example
f = @(x)find(x>5)
f(y)
Yuji Zhang on 24 Apr 2013
I see. And i tested to find f = @ find(x>5) is illegal.
Thank you Wayne~

Matt J on 24 Apr 2013
Briefly, you could use f=@find. The advantage of anonymous functions is that they allow you to point to functions which are not pre-packaged and which have more intricate forms. They can also take snapshots of other MATLAB workspace variables and use them as fixed parameters. E.g.,
a=1; b=2;
f=@(X) find(b*X>=a);
>> f([0,1,2])
ans =
2 3
Yuji Zhang on 24 Apr 2013
Edited: Yuji Zhang on 24 Apr 2013
i see i see. yea i saw this example: sqr = @(x) x.^2;
oops i want to accept this answer too. it seems i can't accept two of them both.
it's an excellent answer. Thanks a lot Matt~