How do I evaluate a user-input trigonometric function?
Show older comments
I'm not entirely sure how to explain this but here is the question:

My main issue is I don't know how to use eval when using a user-input trigonometric function. (I don't really need help with the graphing part).
This is my attempt:
n = input('Enter a positive number n: ');
x = linspace(0, n, 1000)
trigfunc = input('Enter a trigonometric function: ', 's');
eval('trigfunc(x)')
1 Comment
"Then, by using the function eval..."
Ugh, why teach impressionable students such awful programming practices?
Why not simply use a basic look-up, or str2func() or feval() ?
Accepted Answer
More Answers (2)
num = str2double(input('End value of vector: ','s'));
fun = str2func(input('Trig function (e.g. sin, cos, etc.): ','s'));
x = linspace(0,num,1000);
y = fun(x);
plot(x,y)
To which it is also easy to add input checking, etc.
Prathap
on 26 Dec 2022
0 votes
Plot the trigonometric curve as a function of time. Hint: Use ‘eval’ function within the script to accept different trigonometric functions (e.g., sin, cos, tan, etc.).
1 Comment
Stephen23
on 26 Dec 2022
Much Better Hint: Use STR2FUNC() function within the script to accept different trigonometric functions:
Categories
Find more on Get Started with MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!