convert string to equation

38 views (last 30 days)
Abdullah Azzam
Abdullah Azzam on 31 Mar 2021
Commented: per isakson on 31 Mar 2021
Hi guys I am building an application using the app designer. However, I have ran into issue because I want the user to feed his equation into the app. However, the edited field can either be numaric or text so if fore example user want to input an equation (5*x^2) how would that be done? I have tried using string field and use str2double and str2num but that didn't work any thoughts on that?

Answers (1)

per isakson
per isakson on 31 Mar 2021
Edited: per isakson on 31 Mar 2021
Or a smelling solution if you don't have the symbolic toolbox
>> x=3;
>> v = eval('(5*x^2)')
v =
45
>>
Create an anonymous function
>> foo = eval(['@(x)','(5*x^2)'])
foo =
function_handle with value:
@(x)(5*x^2)
>> foo(2)
ans =
20
>>
  2 Comments
Stephen23
Stephen23 on 31 Mar 2021
Edited: Stephen23 on 31 Mar 2021
str = '5*x^2';
foo = str2func(sprintf('@(x)%s',str));
foo(2)
ans = 20
per isakson
per isakson on 31 Mar 2021
That´s better!

Sign in to comment.

Categories

Find more on Argument Definitions in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!