undefined function 'piecewise' for input arguments of type 'double'.
39 ビュー (過去 30 日間)
古いコメントを表示
I am trying to run the following piecewise function:
x = @(y) piecewise([y>2, 1], 0)
However, whenever I try to run it, I get the following error: "undefined function 'piecewise' for input arguments of type 'double'."
I definitely have the Symbolic Math toolbox installed and am not sure why this is happening.
0 件のコメント
回答 (1 件)
Thiago Henrique Gomes Lobato
2020 年 2 月 23 日
piecewise defines a symbolic function, so you can't just give a double as input for the anonymous function. If you however explicitely make the substitution it will work
syms y
x = @(y) piecewise(y>2,1, 0);
subs(x,[1,2,3])
ans =
[ 0, 0, 1]
Although unless you really need it to be symbolic I would strongely recommend to remain working with numerical values:
x = @(y) double(y>2);
x([1,2,3])
ans =
0 0 1
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Assumptions についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!