MATLAB Answers

How to get functions out of inputdlg

1 view (last 30 days)
questions = {'Enter a function','Enter a lower limit','Enter an upper limit'};
prompt = inputdlg(questions)
equation = str2num(prompt{1})
lower_limit = str2num(prompt{2})
upper_limit = str2num(prompt{3})
P=int(sym('equation'),lower_limit,upper_limit)
Hello everyone. My question is how do I keep the inputted equation (such as x.^2) as itself, instead of it changing to x. When I run the program below (you should be able to copy and paste it if you want to run it) the inputted function gets changed to x. Many thanks.

  0 Comments

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 6 Apr 2020
I would do something like this, using str2func and vectorize:
questions = {'Enter a function of ‘x’','Enter a lower limit','Enter an upper limit'};
prompt = inputdlg(questions)
equation = str2func(['@(x) ',vectorize(prompt{1})])
lower_limit = str2num(prompt{2})
upper_limit = str2num(prompt{3})
P=integral(equation,lower_limit,upper_limit)
Experiment to get different results.

  2 Comments

Mason Smith
Mason Smith on 6 Apr 2020
You are a life saver. Thank you so much!

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Tags