How can I turn a string into a function and obtain the result?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Brent King
le 29 Juil 2018
Réponse apportée : Titus Edelhofer
le 30 Juil 2018
To be more precise I have a sequence of functions that result in several outputs that all look similar to this:
'((5/5)+5)+(5*((5*5)-5))'
I tried using str2func but that didn't seem to work.
2 commentaires
per isakson
le 29 Juil 2018
" that didn't seem to work." Always describe exactly what you did and what error message was returned.
Try
>> foo = str2func('@() ((5/5)+5)+(5*((5*5)-5))');
>> foo()
ans =
106
>>
Réponse acceptée
Titus Edelhofer
le 30 Juil 2018
Hi Brent,
maybe you can describe a little more what you are trying to achieve? Your "function" has no input, so you could basically evaluate the string:
str = '((5/5)+5)+(5*((5*5)-5))';
value = eval(str);
If you indeed have a function, e.g.
str = '2*exp(x)';
then Per's suggestion of using the "@" and str2func works fine:
fcn = str2func(['@(x) ' str]);
Regards, Titus
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur String 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!