フィルターのクリア

Why I got the error "Undefined operator '*' for input arguments of type 'function_handle"?

12 ビュー (過去 30 日間)
My code:
f=@(x)x+1
g=@(x)x*f+4
g(1)

採用された回答

Stephen23
Stephen23 2016 年 2 月 18 日
編集済み: Stephen23 2016 年 2 月 18 日
You need to call the function f, like this:
g=@(x)x*f(x)+4
f is a function handle, not a numeric value. Function handles cannot be multiplied. Only when you call the function handle with its input does it return a numeric value, which can then be multiplied.
This is just like any other function in MATLAB:
5*sin % error, because sin is a function not a value
5*sin(pi) % okay, the function sin returns a numeric value
  1 件のコメント
Dhrumil Patadia
Dhrumil Patadia 2020 年 7 月 25 日
In this case what would be the difference between x * f(x) and x .* f(x)?

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMultidimensional Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by