How to insert a function into a GUI

23 views (last 30 days)
Daniel Jaló
Daniel Jaló on 9 Dec 2012
Hi.
I'm making a simple GUI which receives functions and do operations on them. It is complete, however to change the function I need to modify the code and change the function.
Is there anyway to insert a funcion into a GUI as a string and converting it into a function?
e.g: the user inserts x.^2+x
The code receives it as string and converts it to a variable so that
y = x.^2 + x (the x will be defined beforehand)
Thanks in advance. I hope I've expressed my doubt clearly enough. Daniel.

Answers (2)

Image Analyst
Image Analyst on 9 Dec 2012
Yes, just go ahead and enter it in any place that is not another function. For example at the very end of your code, add this
function y = MyPolynomial(polynomialString, x)
coefficients = ParseString(polynomialString)
y = coefficients(1) * x^2 + coefficients(2) * x + coefficients(3);
function coefficients = ParseString(polynomialString)
equalsLocations = findstr(polynomialString, '=');
plusLocations = findstr(polynomialString, '+');
minusLocations = findstr(polynomialString, '-');
% etc. You do the rest.
  1 Comment
Daniel Jaló
Daniel Jaló on 9 Dec 2012
Thanks for the answer, but that won't allow me to insert any function at will, only a second degree polinomial function. I gave the function as an example, my objective is to be able to convert any function I insert.
Thanks. Daniel

Sign in to comment.


Walter Roberson
Walter Roberson on 10 Dec 2012
y = str2func(['@(x) ', TheString]);

Community Treasure Hunt

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

Start Hunting!