undefined function 'piecewise' for input arguments of type 'double'.
39 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
Thiago Henrique Gomes Lobato
il 23 Feb 2020
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 Commenti
Vedere anche
Categorie
Scopri di più su Assumptions in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!