Filter löschen
Filter löschen

How to use input string as a function in Appdesign?

3 Ansichten (letzte 30 Tage)
Abrar
Abrar am 21 Feb. 2023
Kommentiert: Abrar am 21 Feb. 2023
I am beginner in appdesigning. However, I am trying here to make an interface where user will write down the equation of a function and the value of the variable. After clicking the button,he will get the value of f(x) for the given value. Maybe I have some errors in the codes for which,after giving datas and clicking then,there seems something wrong. Someone please help me to debug this I need that emergency.

Akzeptierte Antwort

Simon Chan
Simon Chan am 21 Feb. 2023
Bearbeitet: Simon Chan am 21 Feb. 2023
In case you would like to use function str2func, the string in the editfield for entering the equation should looks like the following:
@(x)x^2
instead of
x^2
and use the following inside the callback
f = str2func(s)
instead of
f = @(x)(str2func(s))

Weitere Antworten (1)

Steven Lord
Steven Lord am 21 Feb. 2023
If the user enters an expression in the edit field, you can convert it into an anonymous function using a couple of functions.
s = 'x^2+y';
Make it so it can be called with a vector of values using the vectorize function.
vecFunction = vectorize(s)
vecFunction = 'x.^2+y'
Get the list of variables using symvar.
vars = symvar(s)
vars = 2×1 cell array
{'x'} {'y'}
Assemble the string representation of the anonymous function, joining the list of variables and the function that was entered into the edit box.
str = "@(" + join(vars, ", ") + ") " + vecFunction
str = "@(x, y) x.^2+y"
Make the anonymous function with str2func.
f = str2func(str)
f = function_handle with value:
@(x,y)x.^2+y
To check let's call the function handle.
z = f(1:10, 100)
z = 1×10
101 104 109 116 125 136 149 164 181 200

Kategorien

Mehr zu Numeric Types 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