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

3 vues (au cours des 30 derniers jours)
Yuji Zhang
Yuji Zhang le 24 Avr 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~

Réponse acceptée

Wayne King
Wayne King le 24 Avr 2013
Modifié(e) : Wayne King le 24 Avr 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 commentaire
Yuji Zhang
Yuji Zhang le 24 Avr 2013
I see. And i tested to find f = @ find(x>5) is illegal.
Thank you Wayne~

Connectez-vous pour commenter.

Plus de réponses (1)

Matt J
Matt J le 24 Avr 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 commentaire
Yuji Zhang
Yuji Zhang le 24 Avr 2013
Modifié(e) : Yuji Zhang le 24 Avr 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~

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by