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

5 Ansichten (letzte 30 Tage)
Yuji Zhang
Yuji Zhang am 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~

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Matt J
Matt J am 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 Kommentar
Yuji Zhang
Yuji Zhang am 24 Apr. 2013
Bearbeitet: Yuji Zhang am 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~

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Parallel Computing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by