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

2 次查看(过去 30 天)
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
Wayne King 2013-4-24
编辑:Wayne King 2013-4-24
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 个评论
Yuji Zhang
Yuji Zhang 2013-4-24
I see. And i tested to find f = @ find(x>5) is illegal.
Thank you Wayne~

请先登录,再进行评论。

更多回答(1 个)

Matt J
Matt J 2013-4-24
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 个评论
Yuji Zhang
Yuji Zhang 2013-4-24
编辑:Yuji Zhang 2013-4-24
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~

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by