How to get functions out of inputdlg

2 views (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.

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)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!