Convert a symbolic equation to a vector equation
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Daniel Wells
le 8 Sep 2011
Commenté : Walter Roberson
le 7 Nov 2018
I would like to be able to input a multi-variate symbolic equation into MATLAB and convert that equation into a function which takes in a vector. I know that matlabFunction() can turn this symbolic function into a function handle, but that equation does not take in a vector, but rather a list of inputs. -Is there a command which will convert my symbolic expression to a vector equation? -If not, is there a way to convert the function handle returned by matlabFunction() to one that takes in a vector?
0 commentaires
Réponse acceptée
Walter Roberson
le 8 Sep 2011
Start with
S = vectorize(char(EXPRESSION))
To turn that in to an anonymous function depends upon your MATLAB version. If you have a very new version, you can use
f = str2func(['@(x) ' S]);
The (x) should be whatever list of symbolic names is in your symbolic expression.
If you do not have one of the very newest versions, then you:
eval(['f = @(x) ' S]);
Yes, ugly and evil, but we have to play the hand we are dealt.
2 commentaires
Daniel Shub
le 28 Nov 2011
I think f = eval(['@(x) ' S]); might be a bit safer and easier to deal with since you are not poofing a variable into the workspace.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!