How to receive a function in MATLAB app DESIGNER given by user in edit field?

17 views (last 30 days)
HI,
I am working on an app where user will put function and a value .output will be the value we get putting the input value in function.
such as, function will be
y=x^2+2^x+3
and x=2
how to code this??

Accepted Answer

Voss
Voss on 6 May 2022
Something like this would work for functions of one variable, which is always called 'x'
% user inputs:
str = 'x^2+2^x+3'; % function, taken from an EditField
x = 2; % x value
f = str2func(['@(x)' str])
f = function_handle with value:
@(x)x^2+2^x+3
y = f(x) % output
y = 11
To be more general than that, you'd have to modify this approach or do something else.
  3 Comments
Himalay  Baidya
Himalay Baidya on 7 May 2022
detailed code given below=-----function and a value is taken from user .and when button clicked the result shown in text field.
eq=app.EditField.Value;
x=app.EditField2.Value;
f = str2func(['@(x)' eq]);
y = f(x);
app.EditField3.Value=num2str(y);
Voss
Voss on 7 May 2022
You're welcome! Glad it's working.
The code you shared just now looks like it will work, assuming:
  • app.EditField is an EditField (i.e., a uieditfield of style 'text')
  • app.EditField2 is a NumericEditField (i.e., of style 'numeric' - if not, you can use str2double to convert x to a number), and
  • app.EditField3 is an EditField (again, of style 'text' - if not, you can avoid converting y to a string with num2str and use the numeric value of y directly).

Sign in to comment.

More Answers (0)

Categories

Find more on Cell Arrays 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!