Does anybody know what the exact meaning of the following command?

Does anybody know what the exact meaning of the following command?
D = @(x,y)f(x,y).*(g(x ,y)>0);
If it possible, answer by an example.

 採用された回答

Matt J
Matt J 2023 年 12 月 6 日
編集済み: Matt J 2023 年 12 月 6 日
It defines an anonymous function of x,y. Everything after @(x,y) is the expression that will be evaluated. E.g.,
D=@(x,y) x+y;
D(1,0)
ans = 1
D(1,2)
ans = 3
D(10,13)
ans = 23

5 件のコメント

Mehdi
Mehdi 2023 年 12 月 6 日
I mean this part. (g(x ,y)>0)
It returns logical(1) if g(x,y)>0 and logical(0) otherwise, e.g.
g=@(x,y) x+y;
g(-5, 1)>0
ans = logical
0
g(-5, 6)>0
ans = logical
1
Mehdi
Mehdi 2023 年 12 月 6 日
can we say that D defines f only within the domain of g>0 (limits f to the domain of g>0)?
Walter Roberson
Walter Roberson 2023 年 12 月 6 日
Combining:
D = @(x,y)f(x,y).*(g(x ,y)>0);
evaluates to:
  • f(x,y) in locations where g(x,y) is > 0
  • NaN in locations where f(x,y) is -inf or +inf and g(x,y) <= 0
  • 0 in locations where f(x,y) is finite and g(x,y) <= 0
Most people forget about the inf -> nan problem: most people would summarize D as being 0 where g(x,y)<=0 and f(x,y) where g(x,y)>0 -- but that is wrong for the case of infinite f(x,y)
Matt J
Matt J 2023 年 12 月 6 日
編集済み: Matt J 2023 年 12 月 6 日
can we say that D defines f only within the domain of g>0 (limits f to the domain of g>0)?
No, D is defined for all (x,y), in the sense that any (x,y) pair you give it as input will return a result. The g>0 part is simply to ensure that D=0 whenever g<=0 (assuming f(x,y) is finite for all x,y). Here is a 1D example that may make this clearer:
t=linspace(-1,1,25);
D=@(x) 2*(x>0);
plot(t,D(t),'--x'); axis padded %plot of a step fucntion
As you can see, D(t) returns plottable values for both positive and negative t. It is simply that D(t)=0 for negative t.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMatrices and Arrays についてさらに検索

製品

リリース

R2022b

タグ

質問済み:

2023 年 12 月 5 日

編集済み:

2023 年 12 月 6 日

Community Treasure Hunt

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

Start Hunting!

Translated by