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.

 Risposta accettata

Matt J
Matt J il 19 Dic 2022
Modificato: Matt J il 19 Dic 2022
f=str2func("@(X,Y) " + InputFunction);
surf(X,Y,f(X,Y))

Più risposte (0)

Categorie

Prodotti

Release

R2022b

Richiesto:

il 19 Dic 2022

Commentato:

il 20 Dic 2022

Community Treasure Hunt

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

Start Hunting!

Translated by