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

4 views (last 30 days)
Yuji Zhang
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~

Accepted Answer

Wayne King
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)
  1 Comment
Yuji Zhang
Yuji Zhang on 24 Apr 2013
I see. And i tested to find f = @ find(x>5) is illegal.
Thank you Wayne~

Sign in to comment.

More Answers (1)

Matt J
Matt J on 24 Apr 2013
You should eventually read about Anonymous Functions
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
  1 Comment
Yuji Zhang
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~

Sign in to comment.

Categories

Find more on General Applications in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!