Trouble using ezplot and matlabFunction on a symbolic function defined using symengine "piecewise"

syms x t;
MP_syntax1 = 'piecewise([x <= 10, x/10], [10 < x <= 30, (30 - x)/20])';
MP_syntax2 = 'ilaplace(2/s^3,s,t)';
f(x) = evalin(symengine,MP_syntax1);
g(t) = evalin(symengine,MP_syntax2);
No trouble with g(t) or other MuPad functions:
ezplot(g(t), [-5,5]);
G = matlabFunction(g(t));
Trying the same to the piecewise, f(x) will not work however.
ezplot(f(x),[0,30]);
F = matlabFunction(f(x));
However, this works
xd = 0:0.1:30;
fd = double(f(xd));
plot(xd,fd);
What is wrong with the other calls using ezplot and matlabFunction for f(x) ?

4 comentarios

Ronny - what do you mean by f(x) will not work? Are you observing an error or something else?
Sorry for beeing unclear. Calling
"ezplot(f(x),[0,30])" and "matlabFunction(f(x))"
produces errors. However,
"ezplot(g(t),[-5,5])" and "matlabFunction(g(t))"
produces good output.
Errors are:
Error using ezplot (line 162)
piecewise([x <= 10, x/10], [x in Dom::Interval(10, [30]), 3/2 - x/20]) cannot be plotted in the xy-plane.
and
Error using symengine>makeFhandle (line 109)
Error: Unbalanced or unexpected parenthesis or bracket.
Error in symengine (line 60)
Error in sym/matlabFunction (line 125)
g = symengine('makeFhandle',varnames,body);
I am having a similar error. Any solution yet?
Try the new fplot family of functions in R2016a.

Iniciar sesión para comentar.

 Respuesta aceptada

Sally Al Khamees
Sally Al Khamees el 23 de Dic. de 2016
Editada: Sally Al Khamees el 21 de Feb. de 2017
If you have R2016b and the Symbolic Math Toolbox installed, you can just use the piecewise function:
For example:

Más respuestas (0)

Preguntada:

el 29 de Mzo. de 2015

Editada:

el 21 de Feb. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by