calculate derivative of a function using handle
Afficher commentaires plus anciens
Hi, Matlab community
I have two scripts, one is
syms f(x)
f=@(x)func(x);
df=diff(f,x);
fplot(@(x) df(x),[0 10])
the other one is
function f=func(x)
if x >= 1 && x <= 2;
f=-x*1/4+2;
else
f=0;
end
And the error shows like:
Conversion to logical from sym is not possible.
How to solve ths problem?
Thank you for your attention
2 commentaires
KSSV
le 8 Juin 2020
How did you use those functions...show us the full code.
denial nakayama
le 8 Juin 2020
Réponses (2)
Ameer Hamza
le 8 Juin 2020
You need to take the derivative of the original function and then apply the limits
syms x
f(x) = (-x*1/4+2);
df(x) = diff(f,x).*(1<=x&x<=2);
fplot(df,[0 10])
7 commentaires
denial nakayama
le 9 Juin 2020
Ameer Hamza
le 9 Juin 2020
Can you paste complete error message?
denial nakayama
le 9 Juin 2020
Ameer Hamza
le 9 Juin 2020
Try your code again after running
clear f x
denial nakayama
le 9 Juin 2020
Ameer Hamza
le 9 Juin 2020
Not sure about the issue. I don't have R2014a. Maybe this will work
fplot(matlabFunction(df),[0 10])
Walter Roberson
le 9 Juin 2020
In R2014a, fplot() was not yet able to plot symbolic expressions.
Walter Roberson
le 8 Juin 2020
function f=func(x)
f = piecewise(x >= 1 && x <= 2, -x*1/4+2, 0);
3 commentaires
denial nakayama
le 9 Juin 2020
denial nakayama
le 9 Juin 2020
Walter Roberson
le 9 Juin 2020
function f=func(x)
syms t
temp(t) = feval(symengine, 'piecewise', '([t >= 1 and t <= 2, -t*1/4+2], [Otherwise, 0])');
f = temp(x);
Catégories
En savoir plus sur Entering Commands dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!