Hi! I want to calculate a function, lets say f(x), that for example, may have the definition f(x) = a*b + b*x, where "a" and "b" are known values in my workspace. I want MATLAB to simplify this function for me. For example, if a = 2 and b = 4, I would like to get f(x) = 8+4x. I know I can define this function as an anonymous function, but that doesn't simplify the function, it simply states it. How can I get the function in a simplified way?
Thanks in advance

 Réponse acceptée

madhan ravi
madhan ravi le 19 Oct 2020
Modifié(e) : madhan ravi le 19 Oct 2020
>> a
a =
2
>> b
b =
4
>> syms x
f(x) = a*b + b*x
f(x) =
4*x + 8
>>

4 commentaires

I think you maybe looking for subs() to substitute the values.
doc subs
That doesn't work for me, it complains that x is not defined.
madhan ravi
madhan ravi le 19 Oct 2020
Check the edited code.
Great! Thanks very much

Connectez-vous pour commenter.

Plus de réponses (1)

Stephan
Stephan le 19 Oct 2020
Modifié(e) : Stephan le 19 Oct 2020
Can be done with symbolic toolbox - matlabFunction returns an anonymous function the way you want:
syms x
% known constants
a = 2;
b = 4;
% equation as symbolic
eq = a*b + b*x;
% create function handle
fun = matlabFunction(eq)
result:
fun =
function_handle with value:
@(x)x.*4.0+8.0

2 commentaires

Thanks very much!
Stephan
Stephan le 19 Oct 2020
Modifié(e) : Stephan le 19 Oct 2020
Did you notice that you can accept and/or vote for useful answers?

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by