String containing variables to numerical array

I have a user inputed funciton, that is classed as characters. I want to replace those characters with their now assigned variables to return a numerical array.
Here is the code:
Inputs = inputdlg({['Please input the function you wish to plot in terms of X and Y' newline 'Function ='],'x-interval =','y-interval='});
InputFunction = Inputs{1,1};
x_interval = Inputs{2,1};
y_interval = Inputs{3,1};
x_interval = str2num(x_interval);
y_interval = str2num(y_interval);
[X,Y] = meshgrid(x_interval,y_interval);
InputFunction = str2double(InputFunction)
surf(X,Y,InputFunction)
e.g. function should be given in the form X.*exp(-X.^2-Y.^2), and then evaluated over the extracted intervals.
However (unsurpisingly) str2double(InputFunction) doesn't work.
Any help or suggestions much appreciated.

 Respuesta aceptada

Matt J
Matt J el 19 de Dic. de 2022
Editada: Matt J el 19 de Dic. de 2022
f=str2func("@(X,Y) " + InputFunction);
surf(X,Y,f(X,Y))

3 comentarios

Paul
Paul el 19 de Dic. de 2022
Shouldn't this be str2func ?
Matt J
Matt J el 19 de Dic. de 2022
Yes!
Isaac
Isaac el 20 de Dic. de 2022
Thanks for the help!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Productos

Versión

R2022b

Preguntada:

el 19 de Dic. de 2022

Comentada:

el 20 de Dic. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by