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.

 채택된 답변

Matt J
Matt J 2022년 12월 19일
편집: Matt J 2022년 12월 19일

0 개 추천

f=str2func("@(X,Y) " + InputFunction);
surf(X,Y,f(X,Y))

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

제품

릴리스

R2022b

질문:

2022년 12월 19일

댓글:

2022년 12월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by