Create a function from user input string

2 visualizaciones (últimos 30 días)
Jared
Jared el 23 de Nov. de 2011
Editada: Stephen23 el 7 de Nov. de 2018
I am trying to develop a GUI which will allow the user to type a function into a text box and then perform operations to that function. For example suppose the user inputs 'x^2+2x+3' into a text box.
How can I convert the string into a function so I can perform iterative operations on?
such as:
function [y] = f(x)
y=x^2+2x+3;
end
I am fairly new at matlab so any help would be appreciated.

Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 23 de Nov. de 2011
>> str='x^2+2*x+3'
str =
x^2+2*x+3
>> f=inline(str)
f =
Inline function:
f(x) = x^2+2*x+3
>> f(2)
ans =
11
  2 comentarios
klement omeri
klement omeri el 7 de Nov. de 2018
Is there any other way to do this? I am doing it in the same way but matlab shows me a yellow warning that inline function will be removed in a future release.
Stephen23
Stephen23 el 7 de Nov. de 2018
Editada: Stephen23 el 7 de Nov. de 2018
@klement omeri: read the very first line of the inline help, which states "inline will be removed in a future release. Use Anonymous Functions instead." And then use an anonymous function, just like the documentation advises. For example (from the help):
>> str = '@(x)7*x-13';
>> fh = str2func(str);
>> fh(3)
ans =
8

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 23 de Nov. de 2011

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by