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

13 Ansichten (letzte 30 Tage)
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??

Akzeptierte Antwort

Voss
Voss am 6 Mai 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 Kommentare
Himalay  Baidya
Himalay Baidya am 7 Mai 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 am 7 Mai 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).

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Develop Apps Using App Designer finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by