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.

 Accepted Answer

Matt J
Matt J on 19 Dec 2022
Edited: Matt J on 19 Dec 2022
f=str2func("@(X,Y) " + InputFunction);
surf(X,Y,f(X,Y))

More Answers (0)

Categories

Products

Release

R2022b

Asked:

on 19 Dec 2022

Commented:

on 20 Dec 2022

Community Treasure Hunt

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

Start Hunting!